프랙티컬 C#

[클래스] 1장, 객체지향 기초 - 1편

정희재 2022. 6. 1. 19:40

자, 프랙티컬  C# 이라는 책을 샀어요.

제목부터 간지나죠?

이거 읽으면 C# 잘할 것 같죠?

그래서 샀습니다.

 

맛보기로 살짝 깔짝대면서 읽어보고 오늘 새롭게 알게된 내용!

지금 정리 시작합니다.

 

1. 구조체와 클래스의 차이

우선 C#에서 클래스와 구조체를 다루는 방법은 매우 비슷하다.

똑같이 속성과 메소드를 만들어서 사용할 수 있다.

다만 확실하게 드러나는 차이점은 저장공간에 있다.

 

클래스는 인스턴스로 만들어서 사용할 때 참조형(Reference Type)으로 만들어지고

구조체는 인스턴스로 만들었을 때 값형(Value Type)으로 만들어진다.

 

그래서 이런 일이 생긴다.

예시 코드

위 코드의 실행 결과가 아래와 같다.

 

결과

 

클래스의 경우에는 참조형이기 때문에 myClass2 에서 속성값을 바꿨을때 myClass1에도 영향을 끼치지만

구조체의 경우에는 그렇지 않다.

또 모든 Value Type의 변수들이 그렇듯 구조체 역시 null 값을 허용하지 않는다.

 

첫날이니까 조금만 하자 ㅋㅋ;;

게다가 오늘은 휴일이거든...