작성날짜 : 2011-03-25 |
참고 : http://msdn.microsoft.com/ko-kr/library/system.object.aspx
선문비트 프로젝트 : http://cafe.daum.net/smbitpro?t__nil_cafemy=item
Object
- .Net의 Object
모든 클래스의 최상위 클래스이다.
암시적으로 Object로 부터 모든 형식들은 상속을 받게 되어 있다.
Reference 형식..
모든 언어에서 공통적으로 사용했으면 좋겠다 라고 하는 것들을 Object에 정의해 놓음.
(+ : public , # : protected)
- + 생성자
- + Type GetType();
- + v String ToString(); (v : virtual)
int i = 3; i.ToString(); Console.WriteLine(i.ToString()); |
- + v Boolean Equals(Object obj)
개체 인스턴스의 멤버
int i = 3; int j = 3; if (i.Equals(j)) // i와 j는 값으로 취급하기 때문에 결과값은 True { }
Stu s1 = new Stu(); Stu s2 = new Stu(); // s1와 s2는 값은 같겠지만 레퍼런스 형식이기때문에 // 인스턴스가 다르다고 판단하여 결과값 False if (s1.Equals(s2)) { } |
- + v public Int32 GetHashCode();
Data를 담을 수 있는 그릇 : 포켓
- # protected v void Finalize();
더 이상 참조하고 있는 변수가 없다고 한다라면, 소멸자가 호출되기 전에 Finalize작업을 함.
garbage collector (가비지 콜렉터)
- + s bool Equals(Object a, Object b);
클래스의 멤버
Stu s1 = new Stu(); Stu s2 = new Stu(); if (Stu.Equals(s1, s2)) { } |
- + s bool ReferenceEquals(Object a, Object b);
소유하고 있는 인스턴스가 같은지를 비교한다.
int i = 3; int j = 3; if (int.ReferenceEquals(i, j)) { }
string s3 = "hello"; string s4 = "hello"; if (string.Equals(s3, s4)) { } if (string.ReferenceEquals(s3, s4)) { } |
안에 있는 data가 같더라도 인스턴스가 같지 않으면 false 반환
실체가 인스턴스.. 눈에 보이는 건 변수
예제 소스 코드
class Man { static Man empty = new Man();
string name; int age; const int max_age = 200; bool alive = false;
static Man Empty { get { return empty; } }
public Man() { name = string.Empty; // null하고는 다름. string에 null을 넣으면 터짐. Empty는 비어있는 문자열 age = 0; alive = true; }
public Man(string _name) { name = _name; age = 0; alive = true; } public void HappyNewYear() { age++; } public int Age { get { return age; } set { if (value > max_age) { age = max_age; alive = false; } else { age = value; } } } public bool Alive { get { return alive; } private set { alive = value; } }
public override string ToString() { return base.ToString(); }
public override string ToString() { return "이름 : " + name + "\t나이 : " + age.ToString(); }
} |
Man man = new Man("홍길동");
int i = 3; Console.WriteLine(i.ToString());
Console.WriteLine(man.ToString()); |
실행 화면
'Programming > .NET' 카테고리의 다른 글
[.NET] String (0) | 2015.05.19 |
---|---|
[.NET] Array (배열) (0) | 2015.05.19 |
[.NET] Constructor(생성자) (0) | 2015.05.19 |
[.NET] Method (0) | 2015.05.19 |
[.NET] Static (0) | 2015.05.19 |