본문 바로가기
c++

15. 객체,class,데이터필드,생성자,함수,circle

by 래끼 2020. 1. 7.
728x90
반응형

 

객체는 명확하게 구별되는 실제 세계에서의 개체(요소)를 나타냅니다.

학생,원,TV등을 예로 들 수 있습니다.

 

 

객체는 자신만의 유일한 특성과 상태(state) 행동(behavior)을 갖습니다.

 

 

1. 객체의 상태(또는 속성)는 현재값을 가지고 있는 데이터 필드로 표현됩니다. 

2. 객체의 행동(또는 동작)함수에 의해 정의된 것을 말합니다. 객체에 대한 함수를 호출하는 것은 객체에 어떤 동작을 수행하도록 요구하는 것입니다.

 

 

C++클래스는 데이터필드를 정의하기위해 변수를 사용하고 행동을 정의하기위해 함수를 사용합니다.

 

 

원 객체의 경우를 예로 들어보면 원은 반지름이라는 자신만의 특성을 갖고 원의 면적을 계산하여 반환하게 하는 getArea()라는 함수를 정의할 수 있습니다.

 

 

 

 

아래는 원 클래스와 객체를 설명하는 프로그램입니다.

 

 

6번째줄의 public 키워드는 모든 데이터필드,생성자,함수가 클래스의 객체로부터 접근될 수 있다는 것을 의미합니다.

만약 public키워드를 사용하지 않는다면 기본적으로 private으로 설정됩니다.

 

9번째줄의 Circle()radius 1을 갖는 기본 Circle객체를 생성합니다.

13번째줄의 Circle(double newRadius)는 main함수에서 호출되었을때 새로받은 newRadius를 radius에 넣게됩니다.

17번째줄의 double getArea() 함수는 main함수에서 호출되었을때 해당 원의 넓이를 반환합니다.

21번째줄처럼 class는 마지막에 항상 ;(세미콜론)을 붙여야합니다!

 

 

아래는 위의 코드와 이어지는 main()함수 입니다.

 

26번째줄의 Circle circle1(1.0);

27번째줄의 Circle circle2(10.0);

은 각각 반지름 1과 10인 원 객체를 생성합니다.

 

 circle1.radiuscircle2.radius를 사용해서 객체를 통해 데이터필드에 접근할 수 있습니다.

원의 넓이를 반환하는 함수 getArea()를 호출하여 circle1.getArea() circle2.getArea()로 각 원의 넓이를 구합니다.

 

33번째줄의 circle1.radius =100;은 위에서 처럼 circle1.radius를 사용해 데이터필드에 접근하여 원의 반지름을 100으로 변경해줍니다.

 

 

 

아래는 출력화면입니다.

위에서 설명했던것 처럼 반지름이 각각 1과 10인 원의 넓이를 출력하고 반지름을 100으로 변경하고 넓이를 출력합니다!

 

 

객체는 C++에서 아주 중요한 내용이기 때문에 다양한 실습을 통해 깊은 이해를 해두는 걸 추천드립니다~!

 

728x90
반응형

댓글