JAVA 객체지향 프로그래밍 기초 1

grapefruit·2022년 9월 6일
0

BE 2022-08.29~09.02

목록 보기
3/4

클래스와 객체 part

클래스(Class)

객체를 정의한 '설계도, 틀'

인스턴스(instance)

클래스를 통해 생성된 객체

public class ExampleClass {
	int x = 10; // (1)필드
	void printX() {...} // (2)메서드
	ExampleClass {...} // (3)생성자
	class ExampleClass2 {...} // (4)이너 클래스
} 

1. 필드 - 클래스의 속성을 나타내는 변수입니다.
자동차로 예를 들면 모델명, 컬러, 바퀴의 수 등이 포함될 수 있습니다.

2. 메서드 - 클래스의 기능을 나타내는 함수입니다.
자동차를 예로 들면 시동하기, 가속하기, 정지하기 등이 포함될 수 있습니다.

3. 생성자 - 클래스의 객체를 생성하는 역할을 합니다.

4. 이너 클래스 - 클래스 내부의 클래스를 의미합니다.

필드, 메서드, 생성자 -> 멤버(member) 라고 부른다.

속성 -> 필드
기능 -> 메서드
속성과 기능은 이너 클래스와 함께 객체의 멤버(member) 라고 부른다.

필드와 메서드는 각각의 클래스가 가지는 속성(state)와 기능(behavior)을 대표합니다. 속성과 기능은 해당 클래스와 관련된 데이터의 집합이며, 핵심적인 정보를 담고있다고 할 수 있습니다.

포인트 연산자(.)를 통해 해당 객체의 멤버에 접근이 가능하다.
포인트 연산자(.)의 의미는

'해당 위치에 있는 객체 안을 보세요.' 이다.

 1 참조 변수명.필드명 // 필드값 불러오기
 2 참조 변수명.메서드명() // 메서드 호출

객체는 다음과 같이 생성한다.

1 클래스명 참조_변수명; // 인스턴스를 참조하기 위한 참조변수 선언
2 참조_변수명 = new 생성자(); // 인스턴스 생성 후, 객체의 주소를 참조 변수에 저장

참조 변수는 실제 데이터 값이 아니라 실제 데이터가 저장되어 있는 힙 메모리의 주소값을 가리킨다.
new 키워드는 생성된 객체를 힙 메모리에 넣으라는 의미를 가지고 있는데,

클래스명 참조_변수명 = new 생성자();

간편하게 이렇게 선언할수 있다.

먼저 참조 변수는 앞서 설명한대로 실제 데이터 값을 저장하는 것이 아니라 실제 데이터가 위치해있는 힙 메모리의 주소를 저장하는 변수를 의미한다.

따라서 우리가 new 키워드와 생성자를 통해 클래스의 객체를 생성한다는 것해당 객체를 힙 메모리에 넣고 그 주소값을 참조변수에 저장하는 것과 같다.

그림에서 볼 수 있는 것처럼 클래스 Person과 참조 변수 p는 각각 클래스 영역과 스택 영역이라는 다른 위치에 저장된다.
Person -> 클래스 영역으로, p -> 스택 영역으로 저장된다.

profile
개발자몽

0개의 댓글