일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- HTML
- 모조칼럼
- ||
- tomcat
- Oracle SQL
- github
- HTTP Status 404
- JSP
- Java
- git
- group by
- distinct
- SQL
- JavaScript
- 과정평가형
- 성적프로그램
- rownum
- HTTP Status 500
- 부트스트랩
- sql developer
- jQuery
- CRUD
- alias
- 한글 인코딩
- Bootstrap
- 제약조건
- 답변형 게시판
- oracle
- 이클립스
- Oracle DB
초급의 끄적거림
[JAVA] 접근제어자 본문
자바의 접근제어자
-
private
-
default
-
protected
-
public
public > protected > default > private 순으로 보다 많은 접근을 허용함
private
-
private이 붙은 변수, 메소드는 해당 클래스에서만 접근 가능
-
아래 예제의 study 변수와 getStudy 메소드는 AccessStudy 클래스 안에서만 접근가능하고 다른 클래스에서는 접근이 불가능함.
public class AccessStudy {
private String study;
private String getStudy() {
return this.study;
}
}
default
-
접근제어자를 별도로 설정하지 않는다면 접근제어자가 없는 변수, 메소드는 default 접근제어자가 되어 해당 패키지 내에서만 접근 가능
-
StartJava와 EndJava의 패키지는 javastart.study로 동일한데 StartJava의 lastname 변수는 접근제어자가 default로 EndJava 클래스에서 main 메소드에서 사용한 것처럼 lee.lastname으로 StartJava의 lastname변수에 접근이 가능
StartJava.java
package javastart.study;
public class StartJava {
String lastname = "lee";
}
EndJava.java
package javastart.study;
public class EndJava {
String lastname = "yoon";
public static void main(String[] args) {
StartJava lee = new StartJava();
System.out.println(lee.lastname);
}
}
protected
-
protected가 붙은 변수, 메소드는 동일 패키지 내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 접근 가능
-
NaEun 클래스를 상속받은 April 클래스의 패키지는 javastart.start.grup으로 NaEun의 패키지인 javastart.start와는 다르지만 NaEun의 lastname 변수가 protected로 설정되어 있기 때문에 april.lastname의 접근이 가능함
-
만약 lastname의 접근제어자가 protected가 아닌 default 였다면 april.lastname은 컴파일 오류가 발생
NaEun.java
package javastudy.start;
public class NaEun {
protected String lastname = "lee";
}
package javastudy.start.grup;
import start.NaEun;
public class April extends NaEun {
public static void main(String[] args) {
April april = new April();
System.out.println(april.lastname);
}
}
public
-
public 접근제어자가 붙은 변수, 메소드는 어떤 클래스에서도 접근 가능
-
NaEun의 info 변수는 public 접근제어자가 붙어 있어서 어떤 클래스에서든지 접근 가능
NaEun.java
package javastart.study;
public class NaEun {
protected String lastname = "lee";
public String info = "public";
}
'JAVA' 카테고리의 다른 글
[java/배열/형변환]String배열을 int형 배열로 변환하기 (0) | 2021.03.17 |
---|---|
[Java] @SuppressWarnings (0) | 2020.07.31 |
[JAVA] request.getRemoteAddr() IP를 IPv4로 만드는 법 (0) | 2020.07.15 |
[JAVA] Integer.parseInt() (0) | 2020.04.12 |
[Eclipse] SVN 싱크맞추기 (2) | 2020.01.14 |