몬그로이

인터페이스, 클래스, 인스턴스, 메서드 그리고 생성자? 본문

Dev 언어 정리 & Self QnA/Java

인터페이스, 클래스, 인스턴스, 메서드 그리고 생성자?

Mon Groy 2024. 4. 24. 06:00

한 인터페이스의 바탕 아래 각각의 특징을 가진 클래스들이 있다

한 클래스의 속성을 가진채 이름을 지어주면 그것이 인스턴스이며

클래스의 속성을 가지고 있기 때문에 클래스에 속한 메서드를 사용할 수 있다

 

걷는 것이 가능한 인터페이스가 있다고 하자

운동화를 신겨서 A타입을 만들고

구두를 신겨서 B타입을 만들었다

두 타입은 신은 신발 종류가 다르기 때문에 기능적으로 차이가 있다

이렇게 구별되는 것이 클래스이며 두 클래스 모두 걷는 것이 가능하다

 

A타입을 선택하여 운동화를 붉게 물들이고

또 A타입을 선택하여 운동화를 파랗게 물들였다

이렇게 되면 두 경우는 서로 다른 존재라고 할 수 있다

그래서 붉은 운동화, 파란 운동화 라고 이름을 붙여줄 수 있다

이렇게 같은 기능의 다른 존재들이 인스턴스들이다

하지만 두 경우 모두 같은 타입의 운동화를 신었으므로 동일하게 작동할 수 있다

이것이 메서드이다

 

그렇다면 생성자는 뭘 하는 존재일까?

운동화 기능과 관련 없는 설정으로는

색상을 입히는 것 말고도

스티커를 붙이는 것, 택을 달아 놓는 것 등이 있다

그런 방향성을 결정하기 위한 것이 생성자이다

 

빨간 운동화와 파란 운동화로 색칠하기 전에

'색상을 칠한 운동화'라는 기본값(초기값)을 설정해 두는 견본같은 존재인 것이다

따라서 인스턴스를 생성하거나 초기화 할 때 사용하기 좋다