구조체 - 필드와 메소드를 가질 수 있는 등 클래스와 상당히 유사 - 데이터를 담기 위한 자료구조로 사용되기 때문에 굳이 은닉성을 비롯한 객체지향의 원칙을 구조체에 강하게 적용하지 않는 편 - 따라서 편의상 필드를 public 으로 선언하는 경우가 많음 - 클래스와 다르게 구조체는 "값 형식" 특징 클래스 구조체 키워드 class struct 형식 참조형식(힙에 할당) 값 형식(스택에 할당) 복사 얕은 복사 깊은 복사 인스턴스 생성 new 연산자와 생성자 필요 선언만으로도 생성 생성자 매개변수 없는 생성자 선언 가능 매개변수 없는 생성자 불가능 상속 가능 값 형식이므로 상속 불가능 구조체는 값 형식이다 따라서 구조체의 인스턴스는 스택에 할당되고 인스턴스가 선언된 블록이 끝나는 지점의 메모리에서 사라진다 ..
readonly 필드를 다루지만 9장까지 공부한 내용으론 readonly키워드는 1. 필드 : 한번 값을 지정하면 그 후로는 값을 변경할 수 없는 필드 2. 구조체 : readonly struct로 변경불가능 구조체 선언, => 모든 필드,프로퍼티에 일일이 readonly수식 3. 메소드 한정자 형식을 readonly로. 구조체에서만 선언가능. 이때 구조체는 readonly로 수식안해도 사용가능. 메소드에게 상태(속성-필드,프로퍼티)을 바꾸지 않도록 강제 의 3가지에 사용가능하다 (공부한것 까지론 일단 3가지) readonly 필드 - 한번 값을 지정하면 그 후로는 값을 변경할 수 없는 필드 - 읽기 전용 필드는 생성자 안에서만 최초 1회 초기화 가능하다 (반면 const는 코드를 작성한 순간 아예 변경..