-
CHAPTER 7. (4) 제어자란? (static, final 포함)java/ㄴ CHAPTER 7. 객체지향 프로그래밍 2 2020. 4. 2. 08:59
제어자
- 클래스, 변수, 메서드 선언부 등에 함께 사용되어 부가적인 의미 부여
- 접근 제어자와 그 외로 나뉨
접근 제어자
public, protected, default, private
- 네 가지 중 하나만 선택 가능
그 외
static, final, abstract, native, transient, synchronized, volatile, strictfp
접근 제어자
private
ㄴ 같은 클래스 내에서만 접근 가능
default
ㄴ 같은 패키지 내에서만 접근 가능
protected
ㄴ 같은 패키지 내, 다른 패키지 자식 클래스에서 접근 가능
public
ㄴ 접근 제한 없음
접근 제어자 사용 이유?
1. 클래스 내부에 선언된 데이터를 보호하기 위해 (데이터 유효한 값 유지, 외부에서 변경 불가)
= 객체지향개념의 캡슐화 내용에 해당
2. 내부 작업을 위해 사용되는 멤버변수, 메서드 등의 멤버들을 클래스 내부에 감추기 위해서
= 복잡성 감소, 캡슐화 내용에 해당
실무에선
protected, default는 잘 안씀
public이나 private 씀
- 클래스는 public
- 값을 담는 멤버변수는 private
- 생성자는 public
- 일반 멤버메서드는 public로
- 클래스 내부적으로 사용되는 멤버메서드는 private
클래스 변수(상수)는 public
클래스 메서드는 public
static
- 클래스 라는 의미
- 인스턴스를 생성하지 않고 사용 가능
- 인스턴스에 관계없이 같은 값을 가짐
ㄴ 왜? 하나의 변수를 모든 인스턴스가 공유
인스턴스 메서드와 static 메서드 차이?
ㄴ 메서드 내에서 인스턴스 멤버 사용 여부 (static메서드는 인스턴스 멤버 사용 안함)
인스턴스 멤버 사용하지 않는 메서드는 static 메서드로 고려
- 왜? 더 편리하고 속도가 빠름
final
- 마지막 이라는 의미
- 거의 모든 대상에 사용 가능
ㄴ 변수에 사용 : 상수 (값 변경 불가)
ㄴ 메서드 사용 : 오버라이딩 불가
ㄴ 클래스 사용 : 자식 클래스 정의 불가'java > ㄴ CHAPTER 7. 객체지향 프로그래밍 2' 카테고리의 다른 글
CHAPTER 7. (6) 다형성이란? (참조변수 형변환, 매개변수 다형성, instanceof연산자 포함) ★★ (0) 2020.04.02 CHAPTER 7. (5) abstract란? (get, set 포함) (0) 2020.04.02 CHAPTER 7. (3) 패키지란? (import문 포함) (0) 2020.04.02 CHAPTER 7. (2) 오버라이딩이란? (super, this 포함) ★ (0) 2020.04.02 CHAPTER 7. (1) 상속이란? (0) 2020.04.02