티스토리 뷰

C#

클래스와 구조체

살구르 2018. 3. 14. 11:33

특징 

클래스 

구조체 

키워드 

class 

struct 

형식 

참조 형식 

값 형식 

복사 

얕은 복사 

깊은 복사 

인스턴스 생성 

new 연산자와 생성자 필요 

선언만으로도 생성 

생성자 

매개 변수 없는 생성자 선언 가능 

매개 변수 없는 생성자 선언 불가능 

상속 

가능 

 모든 구조체는 System.Object 형식을 상속하는 System.ValueType으로 부터 직접 상속 받음 

 


[구조체 예시]



namespace Structure

{

    struct Point3D

    {

        public int X;

        public int Y;

        public int Z;


        public Point3D(int X, int Y, int Z)

        {

            this.X = X;

            this.Y = Y;

            this.Z = Z;

        }


        public override string ToString()

        {

            return string.Format("{0}, {1}, {2}", X, Y, Z);

        }

    }


    class Program

    {

        static void Main(string[] args)

        {

            Point3D p3d1; // 선언만으로도 인스턴스 생성

            p3d1.X = 10;

            p3d1.Y = 20;

            p3d1.Z = 40;


            Console.WriteLine(p3d1.ToString());


            Point3D p3d2 = new Point3D(100, 200, 300); // 생성자를 이용한 인스턴스 생성도 가능

            Point3D p3d3 = p3d2; // 깊은 복사

            p3d3.Z = 400;


            Console.WriteLine(p3d2.ToString());

            Console.WriteLine(p3d3.ToString());


        }

    }

}





'C#' 카테고리의 다른 글

7장. 연습문제  (0) 2018.03.14
확장 메서드(Extension Method)  (0) 2018.03.14
새로운 개념들  (0) 2018.03.12
6장. 연습문제  (0) 2018.03.12
5장. 연습문제  (0) 2018.03.12
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
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 31
글 보관함