ASP/ADO.Net C# 실무 과정 자료] 기본 객체 메소드 GetHashCode






ASP/ADO.Net C# 실무 과정 자료] 기본 객체 메소드 GetHashCode

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


기본 객체 메소드 GetHashCode


■ 해쉬코드?

- 일종의 randomize함수이며 단방향적인 함수이다. 주로 해쉬테이블을 만들때 사용한다.


- 해쉬의 입력이 같으면 같은 반환값이 나온다. 하지만 반환값이 같다고 그 입력이 같다고 볼 수는 없다. 반환값은 보통 균일하게 분포하게 설계된다.


- 좋은 HashCode를 만드는 방법이 많이 연구 되어있다.



■ GetHashCode()의 실제구현

- int의 경우 int를 그대로, string의 경우 문자열을 조합하여 어떤 정수값을 반환한다.

ASP/ADO.Net C# 실무 과정 자료] 객체 기본 메소드 ToString






ASP/ADO.Net C# 실무 과정 자료] 객체 기본 메소드 ToString

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


객체 기본 메소드 ToString


■ 기본적으로 클래스 이름을 반환한다. 두 페이지 앞의 예제에서 Console.WriteLine(a.ToString); 해보면 Boo 가 출력될 것이다.



■ 또, Console.WriteLine(a); 라고 해보면 역시 Boo가 출력된다. WriteLine 메소드가 일반적인 객체 형식을 파라미터로 받으면 기본적으로 ToString 결과값을 화면에 출력해 주기 때문이다.



■ ToString 메소드에 대한 오버라이딩을 통해서 다른 결과를 출력하게 할 수 있다.



ASP/ADO.Net C# 실무 과정 자료] 객체 기본 메소드 Equals






ASP/ADO.Net C# 실무 과정 자료] 객체 기본 메소드 Equals

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



객체 기본 메소드 Equals


■ Equals

  - 참조위치가 다르더라도, 내부 데이터의 비교를 통해 같은 값의 객체임을 나타내는 메소드이다. 두가지 용법이 있다.

  - obj1.Equals(obj2);

  - Object.Equals(obj1, obj2);



■ ReferenceEquals

  - 참조위치 자체가 같은 객체임을 알려주는 메소드이다. 정적 메소드로만 정의 되어있다.

  - Object.Equals(obj1, obj2);



ASP/ADO.Net C# 실무 과정 자료] 객체 기본 메소드






ASP/ADO.Net C# 실무 과정 자료] 객체 기본 메소드

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


객체 기본 메소드


■ 모든 객체는 System.Object를 상속받았다. 따라서 아래와 같은 기본적인 메소드를 가진다.


public Object(); //기본 생성자

public virtual bool Equals(object obj);

public static bool Equals

(object objA, object objB);

public virtual int GetHashCode();

public Type GetType(); //리플렉션에서 다룸

public static bool ReferenceEquals

(object objA, object objB);

public virtual string ToString();



ASP/ADO.Net C# 실무 과정 자료] 내장 데이터 형식 메소드 예제






ASP/ADO.Net C# 실무 과정 자료] 내장 데이터 형식 메소드 예제

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


내장 데이터 형식 메소드 예제


ASP/ADO.Net C# 실무 과정 자료] 참조 형식과 비교







ASP/ADO.Net C# 실무 과정 자료] 참조 형식과 비교

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


참조 형식과 비교


■ 두 변수의 비교 i=j ?

  - 값 형식의 경우, 두 값의 크기를 직접 비교할 수 있다.


  - 참조형식의 경우 i, j는 참조위치의 주소일 뿐이다. 같은 값을 갖는 서로 다른 위치의 객체는  그 주소가 다를 수 밖에 없다.


  - 하지만 같다(==) 연산자를 오버로딩 하여, 주소가 아닌 값을 비교하게 함으로써 이 문제를 해결할 수 있다.


  - 새로운 형태의 클래스를 구축할 경우, ==연산자를 오버로딩 하는 게 권장된다.


  - 뒤의 예제를 통해 개념만 살펴보기로 하겠다.


ASP/ADO.Net C# 실무 과정 자료] 참조 변수의 선언과 할당






ASP/ADO.Net C# 실무 과정 자료] 참조 변수의 선언과 할당

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


참조 변수의 선언과 할당


■ 참조 변수 선언도 값 변수 선언과 같다.

Object obj;


■ 변수 선언과 객체 생성을 동시에 해주는 방법도 많이 사용된다.

Object obj = new Object();


■ 선언만 하고 참조로 연결하지 않은 변수는 null 이 대응되어 있다. 이 변수의 객체를 사용하는 것은 에러를 발생시킨다.


■ 변수에 null 값을 넣어주면, 참조와 변수와의 연결고리가 끊어지게 된다.

obj=null;


ASP/ADO.Net C# 실무 과정 자료] 참조 형식의 메모리 사용








ASP/ADO.Net C# 실무 과정 자료] 참조 형식의 메모리 사용

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


참조 형식의 메모리 사용


+ Recent posts