객체란 우리가 보고 느끼고 생각할 수 있는 모든 것이며, 사용할 수 있는 실체를 말한다.
클래스는 객체를 생성하는 데 사용되는 하나의 틀이다.
클래스는 객체를 정의한 '설계도' 또는 '틀'이라고 볼 수 있고, 객체를 생성하는 데 사용된다.
객체는 클래스에 정의되고 설계된 내용 그대로 생성된다.
둘은 뗄 수 없는 관계이다.
클래스를 통해 생성된 객체를 인스턴스(instance)라고 부르고,
클래스로부터 객체를 만드는 과정을 인스턴스화(instanctiate)라고 부른다.
객체와 인스턴스는 같은 말이다.
둘을 혼용하여 사용할 수 있다.
다만, 객체는 모든 인스턴스를 포함하는 넓은 의미라면, 인스턴스는 어떤 클래스로부터 생성된 것인지를 강조한다.
클래스는 크게 다음 3가지의 구성요소를 가진다.
- 필드 : 클래스의 속성을 나타내는 변수
- 메서드 : 클래스의 기능을 나타내는 함수
- 생성자 : 클래스의 객체를 생성하는 역할
- 이너 클래스 : 클래스 내부에 있는 클래스
생성자를 제외한 나머지 3가지 요소를 멤버라고 부른다.
클래스의 기본 문법은 다음 예시와 같다.
객체는 크게 속성과 기능으로 구분할 수 있다.
속성은 필드(변수)로 나타내고,
기능은 메서드로 정의한다.
하나의 객체는 다양한 속성과 기능의 집합으로 이루어진다.
객체는 new 키워드를 통해 생성할 수 있다.
메서드를 사용해서도 객체를 생성할 수 있다.
클래스명 참조변수명 = new 생성자();
여기서, new 키워드는 '생성한 객체를 힙 메모리에 넣어라'라는 의미를 가진다.
여기서, 참조변수 bmw, audi, bentley는 실제 데이터 값을 저장하는 게 아니라,
실제 데이터가 위치한 힙 메모리의 주소값을 저장한다.
객체(인스턴스)를 생성하면 다음과 같이 메모리 영역에 저장된다.
생성된 인스턴스는 힙 메모리 영역에 들어간다.
생성된 인스턴스에서 필드값은 실제 저장 공간이 객체 내부에 있다.
메서드는 힙 메모리 영역이 아닌 클래스 영역에 하나만 저장해놓고 공유하는 시스템이다.
만들어진 객체는 포인트 연산자(.)를 이용해서 활용할 수 있다.
bmw.필드명 // 필드값 불러오기
bmw.메서드명() // 메서드 호출
내용에 대해 더 깊게 알게 되면, 내용을 더 추가할 예정입니다.
피드백 환영합니다!
'Develop > Java' 카테고리의 다른 글
생성자란? (0) | 2022.09.05 |
---|---|
필드(Field)와 메서드(Method)란? (0) | 2022.09.05 |
int형의 숫자와 String형의 문자열을 더하면? (0) | 2022.09.04 |
Java : 입력(input) 시, 사용되는 Scanner, BufferedReader (0) | 2022.09.03 |
Java : 입출력 예외 처리 (throws IOException) (0) | 2022.09.03 |