클래스는 무엇이고 객체는 무엇일까요?
클래스는 객체를 정의한 설계도 , 틀이라 생각할 수 있는데
저 같은 경우 가장 좋아하는 비유는 붕어빵 기계입니다. 여기서 클래스가 붕어빵 기계라면
붕어빵은 객체가 되는 거죠.
이러한 객체의 붕어빵 기계인 클래스는 어떻게 구성되어있을까요
클래스는 크게 네 가지의 요소로 구성되어있는데, 이는
클래스의 속성을 나타내는 변수인 필드
클래스의 기능을 나타내는 함수인 메서드
그리고 클래스의 객체를 생성하는 역할을 하는 생성자
마지막으로 클래스 내부의 클래스를 의미하는 이너 클래스로 구성되어있습니다.
이 네가지 요소 중 객체에 활용되는,
즉 붕어빵의 모양을 형성하는 요소들은 필드와 메서드 그리고 이너스 클래스 3가지 요소인데
주로 속성을 나타내는 변수인 필드와 기능을 나타내는 함수인 메서드가 활용되어집니다.
간단히 정리해보면, 예를들 고양이라는 이름의 클래스에서 필드와 메서드를 정의한 뒤
이를 객체화 하게 되면 , 고양이클래스의 필드와 메서드를 사용할 수 있는 객체를 만들 수 있는 겁니다
그렇다면 객체화는 어떻게 하는 걸까요?
객체화는 class이름 참조변수 = new class생성자 ; 를 통해 만들 수 있는데요
자바 메모리 영역에서는
METHOD Area 에 클래스의 정보를
class 생성자를 통해 생성된 객체 정보를 Heap Area에
참조변수를 Stack 영역에 저장합니다.
객체에서 클래스의 메서드를 이용하기 위해서는 참조변수.메소드변수를 입력해서 불러올 수 있는데
이 과정을 자바 메모리 영역에서 일어나는 과정으로 말해보면
Stack에 저장된 참조값이 Heap메모리에 있는 데이터를 가져오고 이 중 메소드의 정보는
METHOD Area 에 있는 클래스 내부의 메소드를 호출해서 가져옵니다.
'기술면접' 카테고리의 다른 글
Rest Client 가 무엇인지 설명해 주세요 (0) | 2023.03.13 |
---|---|
Spring MVC 프레임워크의 요청처리 과정 (0) | 2023.03.13 |
트랜잭션(transaction) (0) | 2023.02.11 |
추상 클래스와 인터페이스의 차이는 무엇인가요 (0) | 2023.01.11 |
자바의 메모리 영역에 대해 설명하시오 (0) | 2023.01.11 |