객체를 정의하는 틀 또는 설계도
클래스를 가지고, 여러 객체를 생성하여 사용
클래스는 객체의 상태를 나타내는 필드(Field)와 객체의 행동을 나타내는 메소드(Method)로 구성
필드 : 클래스에 포함된 변수
메소드 : 어떠한 특정 작업을 수행하기 위한 명령문의 집합
클래스의 인스턴스
데이터와 해당 데이터를 조작하는 메서드로 구성
클래스의 설계도에 따라 생성되며, 한 클래스에서 여러 객체를 생성 가능
상태와 행동을 가짐
상태 : 객체의 데이터, 객체 속성이나 변수로 표현
행동 : 객체가 수행할 수 있는 동작, 메서드로 구현
객체 내부에서 사용되며, 해당 객체의 인스턴스 변수나 메서드를 참조할 때 사용
일반적으로 클래스 내부에서 인스턴스 변수와 메서드의 이름이 로컬 변수와 매개변수의 이름이 충돌하는 경우가 발생하는데 이런 경우 this 키워드를 사용하여 현재 객체의 인스턴스 변수나 메서드임을 명확히 할 수 있음
1. 인스턴스 변수
클래스의 객체(인스턴스)의 상태를 나타내는 데이터
2. 메서드
클래스의 객체가 수행할 수 있는 동작이 정의된 함수
3. 생성자
객체를 최기화하는 특수한 종류 메서드.
객체가 생성될 때 자동으로 호출.
객체의 초기 상태를 설정
클래스와 이름이 동일하고 반환 타입이 없는 특징
4. 내부 클래스
외부 클래스의 객체가 생성된 후에 생성될 수 있으며, 캡슐화와 코드 구조화를 위해 사용 가능
5. 정적 변수
. 정적 변수는 "static" 키워드로 선언되며, 객체 생성 없이 클래스 이름으로 직접 접근 가능
6. 정적 메서드
"static" 키워드로 선언되며, 인스턴스 변수에 접근할 수 없고, 오직 정적 변수나 다른 정적 메서드만 사용 가능
7. 상수
final 키워드로 선언
클래스 내부에서 사용되는 고정된 값
1. 정적 변수
여러 객체 간의 데이터를 고유하고 자 할 때 용
2. 정적 메서드
인스턴스 변수에 의존하지 않고 클래스 레벨에서 동작하는 메서드에 사용
3. 상수
static final로 선언을 통해 변하지 않는 값 선언
4. 정적 블록
클래스가 로드될 때 실행되는 블록으로, 정적 변수의 초기화나 기타 초기화 작업을 수행하는데 사용
생성자는 객체의 초기화를 위해 사용되고, 객체 생성 시 자동으로 호출, 반환 값을 가지지 않음
메서드는 객체의 동작을 정의하고, 객체 생성 후에 호출되며, 반환 값을 가질 수 있음
클래스의 멤버(변수, 메서드, 생성자 등)에 대한 접근 권한을 지정하는 키워드
1. public
2.protected
3. default
4. private
접근 지정자의 목적은 정보 은닉과 객체 지향 프로그래밍에 중요한 원칙인 캡술화를 구현하는데 있음
정보 은닉을 틍해 클래스 내부의 세부 구현을 숨기고 외부에서 접근 가능한 인터페이스를 제공하여 코드의 안정성과 유지보수성을 높임
같은 이름을 가진 메서드나 생성자를 여러 개 정의하는 것
매개변수의 개수, 타입 또는 순서가 다른 다양한 버전의 메서드를 제공함으로써 동일한 기능을 수행하는 여러 가지 방법 제공
메서드 이름을 재사용하면서 다양한 매개변수를 처리할 수 있으며, 코드의 가독성과 유지보수성을 향상시킬 수 있음
1. static 변수
클래스 레벨에서 선언되며, 모든 객체 인스턴스들에 의해 공유
모든 객체가 동일한 값을 공유하며, 객체 생성 없이 클래스 이름을 통해 직접 접근 가능
클래스의 상태를 나타내는 변수, 공통된 설정 값, 카운터 등을 저장하는데 사용
2. 인스턴스 변수
클래스 내에 선언되며, 객체가 생성될 때마다 독립적으로 각 객체에 할당
객체의 속성이나 상태를 저장하는데 사용
3. 지역 변수
메서드, 생성자 또는 블록 내에서 선언되며, 해당 블록 내에서만 유효
임시 데이터를 저장하고 중간 계산 결과를 유지하는데 사용
| 정규화 (0) | 2023.08.14 |
|---|---|
| JAVA int vs Integer (0) | 2023.07.24 |