🔥 Vamos/Java
0902 | 객체 지향 개념 기본 용어 정리
unikue
2022. 9. 2. 22:31
객체 지향 프로그램
① 객체 정의
② 각 객체가 어떤 기능을 제공하는지 속성 파악
③ 객체 간 협력을 어떻게 구현할 것인가?
용어 | 설명 |
객체 | 객체 지향 프로그램의 대상. 생성된 인스턴스 |
클래스 | 객체의 속성과 기능을 코드로 구현 |
패키지 | 클래스 파일의 묶음 |
인스턴스 | 실제로 사용할 수 있도록 생성된 클래스 → 힙메모리에 생성됨 |
멤버 변수 | 클래스의 속성, 특징 |
스택 | 함수 호출시 그 함수만을 위해 생성되는 메모리 공간. last in first out |
메서드 | 함수 중 클래스 내부에서 사용하는 멤버 함수. 멤버 변수를 이용하여 클래스의 기능을 구현 |
참조 변수 | 메모리에 생성된 인스턴스를 가르키는 클래스형 변수 |
참조 값 | 생성된 인스턴스의 메모리 주소 값 |
클래스형 변수이름 = new 생성자
참조변수 . 멤버변수
참조변수 . 메서드
접근제어자
접근 제어자 | 설명 |
public | 외부 클래스 어디서나 접근 가능 |
protected | 같은 패키지 내부, 상속 관계 클래스에서만 접근 가능 그외 클래스에서는 접근 불가 |
아무것도 없는 경우 | default. 같은 패키지 내부에서만 접근 가능 |
private | 같은 클래스 내부에서만 접근 가능 |
변수와 메모리
변수 유형 | 선언 위치 | 사용 범위 | 메모리 | 생성과 소멸 |
지역 변수 (로컬변수) |
함수 내부에 선언 | 함수 내부만 | 스택 | 함수가 호출될 때 생성되고 함수가 끝나면 소멸 |
멤버 변수 (인스턴스 변수) |
클래스 멤버변수로 선언 |
클래스 내부 private가 아니면 참조변수로 다른 클래스에서도 사용 |
힙 | 인스턴스가 생성될 때 힙에 생성 가비지 컬랙터가 메모리를 수거할 때 소멸 |
static 변수 (클래스 변수) |
static예약어 사용 클래스 내부에 선언 |
클래스 내부에서 사용 private가 아니면 클래스 이름으로 다른 클래스에서 사용 |
프로그램 데이터영역 |
프로그램 처음 시작 시, 상수와 함께 데이터 영역에 생성. 프로그램이 끝나고 (닫기) 메모리 해제시 소멸 |
함수에서 기능구현을 위해 잠시 사용한다면 ? 👉 지역변수
클래스의 속성을 나타내고 각 인스턴스마다 다른 값을 가진다면? 👉 인스턴스변수
여러 인스턴스에서 공유하여 사용하도록 한 번만 생성되어야 한다면? 👉 static 변수