05. OOP(Object Oriented Programming) (2)

bbsm·2022년 12월 16일
0

학원 수업 복습

목록 보기
8/36

※ 클래스 (class)

: 객체의 특성(속성, 기능)에 대한 정의를 한 것
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;
}
}

클래스 접근 제한자

※ 필드 (Field)

필드 표현식
[접근제한자][예약어] 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;
}

▶클래스 초기화 블럭

  • 인스턴스 블럭({}) : 인스턴스 변수를 초기화 시키는 블럭으로 객체 생성시 마다 초기화
  • static(클래스)블럭 (static{}) : static 필드를 초기ㅗ하 시키는 블럭으로 프로그램 시작 시 한번만 초기화

클래스 초기화 블럭 표현식
[접근제한자][예약어] class 클래스명 {
[접근제한자] static 자료형 필드1 = 10;
[접근제한자] 자료형 필드2 = 20 // 명시적 초기화;

static{ 필드1 = 30;}
{ 필드2 = 40;}
}

▶ 초기화 순서

클래스 변수
JVM 기본값 -> 명시적 초기값 -> 클래스 초기화 블록 초기값

인스턴스 변수
JVM 기본값 -> 명시적 초기값 -> 인스턴스 초기화 블록 초기값 -> 생성자를 통한 초기값

0개의 댓글