: 객체의 특성(속성, 기능)에 대한 정의를 한 것
ex ) 제품의 설계도, 빵 틀
클래스 작성 시 반드시 필요한 것
객체 지향 언어의 특징 중 추상화, 캡슐화 가 적용되어야 함
클래스 선언
예시
public class Member {
private String name;
private int age;public Member() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
클래스 접근 제한자
필드 표현식
[접근제한자][예약어] class 클래스명 {
[접근제한자][예약어] 자료형 변수명 [=초기값];
}
예시
public class Academy {
public int temp1;
protected int temp2;
int temp3; // 접근제한자 생략 시 (default)
private int temp4; // 캡슐화 원칙으로 private 사용
}
필드 접근제한자
static
: 같은 타입의 여러 객체가 공유할 목적의 필드에 사용하며, 프로그램 start시에 정적메모리(static)영역에 자동 할당되는 멤버에 적용
static 표현식
public class Academy {
private static int temp1;
}
final
: 하나의 값만 계속 저장해야 하는 변수에 사용하는 예약어
final 표현식
public class Academy {
private final int TEMP1 = 100; // final 키워드가 붙은 필드명은 모두 대문자로 표기
private int temp4;
}
클래스 초기화 블럭 표현식
[접근제한자][예약어] class 클래스명 {
[접근제한자] static 자료형 필드1 = 10;
[접근제한자] 자료형 필드2 = 20 // 명시적 초기화;static{ 필드1 = 30;}
{ 필드2 = 40;}
}
클래스 변수
JVM 기본값 -> 명시적 초기값 -> 클래스 초기화 블록 초기값
인스턴스 변수
JVM 기본값 -> 명시적 초기값 -> 인스턴스 초기화 블록 초기값 -> 생성자를 통한 초기값