728x90
클래스와 클래스의 멤버에게 부가적인 의미를 부여
하나의 대상에 여러 제어자를 같이 사용가능하지만 접근 제어자는 하나만 가능
접근 제어자
외부로부터 데이터를 보호하기 위해 사용
public
접근 제한이 없음. 어디서든 접근 가능
protected
같은 클래스 내에서, 같은 패키지 내에서, 다른 패키지의 자손 클래스에서 접근 가능
(default)
같은 클래스 내에서, 같은 패키지 내에서만 접근 가능
private
같은 클래스 내에서만 접근 가능
클래스에는 public과 default 접근 제어자만 사용 가능
클래스의 멤버들에는 모두 사용 가능
하나의 클래스에는 public 클래스는 하나만 있어야함
기타
static
- 클래스의, 공통적인
- 멤버변수 : 클래스 변수로 만듬. 인스턴스 생성 없이 사용가능. 클래스가 메모리에 로드될 때 생성
- 메소드 : 인스턴스 생성 없이 호출 가능한 static 메소드가 됨. 인스턴스 멤버 직접 사용 불가능
final
- 마지막의, 변경될 수 없는
- 클래스 : 변경 / 확장 불가. 다른 클래스의 조상이 될 수 없음
- 메소드 : 변경 불가. 오버라이딩을 통해 재정의 될 수 없음
- 멤버/지역 변수 : 값을 변경할 수 없는 상수가 됨
abstract
- 추상의, 미완성의
- 클래스 : 클래스 내에 추상 메소드가 선언되어 있음을 의미 = 미완성 설계도. 인스턴스 생성불가
- 메소드 : 선언부만 작성하고 구현부는 작성하지 않은 추상 메소드 = 미완성 기능
캡슐화
외부에는 불필요하거나 내부적으로만 사용되는 부분을 감추기 위함
보통 변수를 private로 지정하고 메소드를 public으로 지정하여 메소드를 통해서 변수를 수정하게 함
getter / setter 메소드
private 접근 제어자가 포함된 객체에 값을 추가하거나 수정하고 싶을 때 사용
private int age; // age 라는 private 접근 제어자가 붙은 변수를 외부에서 수정하기 위해선
// 같은 클래스 내부에 get이나 set으로 시작하는 public 메소드를 생성
public int getAge() { // getter는 값을 반환
return age;
}
public void setAge(int age) { // setter는 값의 무분별한 수정을 방지하기 위해 조건문 사용
if(age < 1) return;
this.age = age;
}
// 외부에서 해당 메소드를 사용하여 값을 가져오거나 수정
'Java > Notion' 카테고리의 다른 글
추상화 (0) | 2023.04.25 |
---|---|
다형성 (0) | 2023.04.24 |
import / static import (0) | 2023.04.24 |
패키지 (package) (0) | 2023.04.24 |
super, super() (0) | 2023.04.24 |