일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- insertion
- MySQL
- escape_string
- 볼륨조절앱
- id 얻기
- insert_id
- crashlytics
- mysql_insert_id
- Query
- Python
- 볼륨조절어플
- 역슬레시
- 데이터베이스
- Android
- 안드로이드앱
- 알림바
- soundcontroller
- auto_increment 값
- 메터리얼
- condensed
- mariaDB
- 안드로이드 스튜디오
- 파이썬
- 안드로이드
- db
- last_insert_id
- Auto_increment
- 머터리얼
- 디자인패턴
- android studio
- Today
- Total
장삼의 착한코딩
[Java] 접근 제한자 본문
접근 제한자
Java에 접근 제한자는 private, default, protected, public 4가지가 있다.
free한 순서대로는 public > protected > default > private 순서이다.
private : 가장 엄격한 제한자로 선언된 멤버가 자신의 클래스 내부에서만 사용가능하다.
default : 제한자를 붙이지 않았을 때, package, none이라고도 부른다. 같은 package에서 사용가능 하며, 다른 package에서는 사용 가능하지 않다.
protected : 같은 package에서 사용가능하며, 다른 package에서는 상속만 가능하다.
public : 가장 free한 제한자이며, 모든 곳에서 사용할 수 있다.
접근 제한자 | 같은 package | 다른 package | |||
같은 class |
다른 class |
상속 class |
다른 class |
상속 class |
|
private |
O |
X |
X |
X |
X |
default |
O |
O |
O |
X |
X |
protected |
O |
O |
O |
X |
O |
public |
O |
O |
O |
O |
O |
default와 protected의 차이가 헷갈려서 찾아보았다. 차이점을 정리해 보았다.
default와 protected는 같은 package에서는 모든것이 허락된다. 하지만 다른 package 에서는 protected는 상속이 허락되지만, default는 상속이 허락되지 않는다. 아래에서 코드로 비교해보겠다.
protected
com.wkdgusdn3.b package에서 B class에 protected 접근 제한자로 b를 선언한다.
com.wkdgusdn3.a package에서 A class를 만든 후 B class를 상속한다.