Typing diary
C#-클래스와 구조체 본문
2018. 5. 16
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | using System; using System; namespace CSharp_Console { /* * 클래스와 객체 * -클래스란 객체의 구조와 행위를 정의하는 방법이다. * -클래스에 속하는 각각의 객체를 클래스에 대한 인스턴스(instance)라고 한다. */ //클래스 정의 class MyClass { /* ※접근 수정자 * :다른 클래스에서 필드의 접근 허용 정도를 나타내는 속성이다. * * 별도의 명시가 없을시 private으로 간주된다. * * 접근수정자 │ 같은 클래스 | 파생 클래스 | 네임스페이스 | 모든 클래스 * ─────────────────────┼─────────────┼─────────────┼──────────────┼────────────── * private │ o │ x │ x │ x * protected │ o │ o │ x │ x * internal │ o │ o │ o │ x * protected internal │ o │ o │ o │ x * public │ o │ o │ o │ o */ /* * 필드 * :객체의 속성을 나타낸다. */ public int value; private int data; /* * 메소드 * :객체의 행위를 기술하는 방법이다. */ //생성자 // -클래스와 이름이 동일해야 하며 객체가 생성될때 자동으로 호출된다. public MyClass() { } //소멸자 // -클래스 이름앞에 ~을 붙여야 한다. 객체가 소멸될때 자동으로 호출된다. // -매개변수를 가질 수 없다. ~MyClass() { } private void Add() { value += 1; } } /* * 구조체 * * 구조체 ↔ 클래스 * -클래스는 참조형이고 구조체는 값형이다. * -클래스 객체는 힙에 저장되고 구조체 객체는 스택에 저장된다. * -구조체는 상속이 불가능하다. * -구조체는 소멸자를 가질 수 없다. * -구조체의 멤버는 초기값을 가질 수 없다. */ struct MyStruct { public int x, y; } class Program { static public void Main() { //객체 생성 // -new 연산자를 이용해 객체를 생성한다. // -C#의 모든 객체는 힙(heap)에 저장된다. MyClass myClass = new MyClass(); } } } | cs |
'C#' 카테고리의 다른 글
C#-델리게이트 (0) | 2022.08.17 |
---|---|
C#-배열 (0) | 2022.08.17 |
C#-메소드와 파라미터 (0) | 2022.08.17 |
C# - var과 object타입 (0) | 2022.08.17 |
C# 개요 (0) | 2022.08.17 |