블로그 이미지
Kanais
Researcher & Developer 퍼즐을 완성하려면 퍼즐 조각들을 하나 둘씩 맞춰나가야 한다. 인생의 퍼즐 조각들을 하나 둘씩 맞춰나가다 보면 인생이란 퍼즐도 완성되는 날이 오려나...?

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

Notice

2015. 5. 19. 11:08 Programming/.NET

 

작성날짜    : 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
posted by Kanais