개발괴발 공부

구조체와 클래스

방프 2021. 4. 19. 21:04

구조체 (Struct)

- 데이터와 기능을 포함하는 사용자 정의 데이터타입이다.

- 값타입이다.

- 상속할 수 없다.

struct 구조체이름{

}

 

클래스 (Class)

- 연관성 있는 데이터와 기능을 하나로 묶어 놓은 사용자 정의 데이터 타입이다.
- 참조타입이다.

- 상속할 수 있다.

class 클래스이름{

}

구조체와 클래스의 차이점을 알아보기 위해 코드를 짜 보았다.

 

우선, 이름 나이 성별을 포함하는 구조체 Data를 만든 후 Data형 배열 100개를 생성한다.

배열을 초기화 시켜준 뒤,

데이터를 찾는 함수를 호출한다.

 

이때 반환된 함수의 값을 수정했을경우 배열에 저장되어있는 원본 데이터는 변경되지 않는것을 볼 수 있다.

 

그럼 이제 클래스일 경우를 보자.

 

마찬가지로 Data형 배열 100개를 만들었다.

현재 Data는 class로 되어있다.

 

구조체가 아닌 클래스일경우는 참조타입이므로 원본데이터가 바뀌는것을 알 수 있다.

 

 

 

+추가)

임의의 값 tmp를 사용하지 않고 nullable을 사용해 반환값이 null도 가능하게 할수 있다. 이부분은 나중에 살펴보자.