Day11 - 객체와 클래스

2021. 3. 2. 17:22JAVA 공부

이번에는 객체(object)와 클래스(class)에 대해 알아 봅시다

 

객체(object)와 클래스(class)

붕어빵을 만든다고 가정을 해 봅시다.

붕어빵을 만들 때는 붕어빵 틀이 있고, 반죽과 팥 , 슈크림 등을 넣고 만들죠?

여기서 붕어빵 틀이 클래스(class)

팥빵 , 슈크림빵 이 객체(object)가 됩니다.

 

클래스(class)는 객체들의 기능을 가지고 있다고 생각하면 될 것 같습니다.

 

예제를 보죠

+ 연산만 되는 계산기를 만들었다고 가정을 해봅시다.

※ result 는 class 내 어디서든 사용하게(메서드처럼) main 바깥에 만들었습니다.

이렇게 만들고 사용할 수 있겠죠?

result 에는 6의 값이 들어 가겠네요

 

그러면, result에 들어있는 6이라는 값은 냅두고, 계산기를 또 사용하려면 ? 또 만들어야 겠죠

result2 에는 60의 값이 들어가고, 또 냅두고 계산기를 사용하고 싶다면 ? 또 만들어야죠

result3 에는 600의 값이 들어가고..... 또 사용하려면 또 만들고 또 만들고 .....

같은 기능을 하는데, 이름만 조금씩 바꿔주고 계속 만들어 줘야 하네요?

너무 비효율적이죠?

 

그래서 클래스(class)가 존재 합니다.

클래스로 만들어 봅시다.

위의 계산기 기능을 Calculator 이라는 class 를 만들어서 1번만 작성을 해줬습니다.

그리고 그걸 이렇게 사용할 수 있습니다.

하나씩 풀어가 보죠

 

- 먼저 , main 은 1개만 존재해야 합니다.

 

- 클래스를 사용할 때는 , 해당 클래스 타입의 객체(object)를 만들어 줘야 합니다. 이 과정을 인스턴스(instance)화 라고 합니다 -> Calculator cal1 = new Calculator();

 

- 인스턴스화 를 하기 전까지 ( 객체를 만들기 전까지 ) 는 실제로 class는 존재하지 않습니다.(메모리 할당x)

 

- 객체는 서로 다른 존재 입니다. -> cal1 과 cal2는 다릅니다.

 

- 객체에 . 을 찍으면 참조한다는 의미 입니다.

 

- 클래스에서 변수는 속성, 메서드는 기능을 의미 합니다

 

두 번째 예제를 한번 봅시다

붕어빵 틀이 될 class 를 만들었습니다.

이제 이걸 사용을 해보겠습니다.

main이 될 PenMain calss 를 만들어 주고 main 안에서 작성해 줍시다

먼저 생성을 해줍니다 (인스턴스화) -> black 이라는 객체를 만들어 줍니다

balck 이라는 객체 안에 존재하는 속성(멤버변수)의 값을 변경해 줍니다.

기능(메서드)를 사용 합니다

black 이라는 펜 말고, red라는 펜을 하나 더 만들어 줍시다

똑같이 생성을 해주고 -> red 라는 객체를 만듭니다.

red 라는 객체 안에 존재하는 속성(멤버변수)의 값을 변경해 주고, 기능(메서드)을 사용합니다

 

이제 각각 info를 사용해서 어떻게 다른지 확인 해 봅시다

이렇게 서로 다른 값이 저장이 되어 있는걸 확인 할 수 있습니다.

여기에 아까 만든 계산기 까지 만들어 보죠

 

이렇게 객체와 클래스에 대해 알아 보았습니다.

 

고생하셨습니다