Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 프로그래머스 #mysql #역순 정렬하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #12세 이하인 여자 환자 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 백준 #4153 #직각삼각형 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #모음 제거 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #어린 동물 찾기 #코린이 #개발자 #study
- 백준 #일곱 난쟁이 #2309 #자바 #java #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #과일로 만든 아이스크림 고르기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #알고리즘 #mysql #
- 프로그래머스 #잡은 물고기 중 가장 큰 물고기의 길이 구하기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #가장 큰 물고기 10마리 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #아픈 동물 찾기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #코린이 #개발자 #study
- 코린이 #개발자 #study
- 백준 #
- 프로그래머스 #한 해에 잡은 물고기 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #잡은 물고기의 평균 길이 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 백준 #다이얼 #5622 #알고리즘 #자바 #java #코린이 #개발자 #study
- 프로그래머스 #동명 동물 수 찾기 #mysql #데이터베이스 #db #코린이 #개발자 #알고리즘
- 프로그래머스 #mysql #흉부외과 또는 일반외과 의사 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- mysql #min() #max() #최소값 #최대값 #코린이 #개발자 #study
- 특정 옵션이 포함된 자동차 리스트 구하기 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #자동차 대여 기록에서 장기/단기 대여 구분하기 #코린이 #개발자 #study
- 프로그래머스 #mysql #경기도에 위치한 식품창고 목록 출력하기 #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #동명 동물 수 찾기 #알고리즘 #코린이 #개발자
- 프로그래머스 #알고리즘 #mysql #인기있는 아이스크림 #코린이 #개발자 #study
- 프로그래머스 #나이 정보가 없는 회원 수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
- 백준 #네 번째 점 #3009 #자바 #java #알고리즘 #코린이 #개발자 #study
- 프로그래머스 #mysql #알고리즘 #이름이 있는 동물의 아이디 #코린이 #개발자 #study
- 프로그래머스 #python 개발자 찾기 #알고리즘 #mysql #코린이 #개발자 #study
- 프로그래머스 #조건에 맞는 회원수 구하기 #mysql #알고리즘 #코린이 #개발자 #study
Archives
- Today
- Total
luke
[자바/Java] - 접근 제어자(private,default,protected,public) 본문
접근 제어자
자바는 'public', 'private' 같은 접근 제어자를 제공한다. 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다.
접근 제어자의 종류
- private: 모든 외부 호출을 막는다.
- default(package-private): 같은 패키지안에서 호출은 허용한다.
- protected: 같은 패키지안에서 호출은 허용한다. 패키지가 달라도 상속 관계의 호출은 허용한다.
- public: 모든 외부 호출을 허용한다.
순서대로 'private'이 가장 많이 차단하고, 'public'이 가장 많이 허용한다.
private -> default -> protected -> public
privat
'private' 접근 제어자는 모든 외부 호출을 막는다. 따라서 'private'이 붙은 경우 해당클래스 내부에서만 호출할 수 있다.
예시 코드를 확인해 보겠다.
public class Private {
private int volume; //private 접근 제어자 사용
int apple; //접근 제어자 사용x
Private(int volume){
this.volume = volume;
}
Private(int apple){
this.apple = apple
}
void volumeUp(){
volume += 10;
}
void show(){
System.out.println(volume);
}
}
위 코드는 'private'을 사용한 변수와 사용하지않은 변수가 있다. main 클래스에서 인스턴스를 생성해 값을 지정한후 수정한다면 volume 변수는 불가능 하다. 왜냐 앞서 설명한것 처럼 'private'이 붙은 경우 해당클래스 내부에서만 호출할수 있기 때문에 해당클래스에서만 변경이 가능하다.
보기 쉽게 Main 클래스 코드를 확인해 보겠다.
<Main class>
public class PirvateMain {
public static void main(String[] args) {
Private private = new Private(90);
private.volumeUp(); //volume 10증가
private.show(); // volume의 결과 값은 100이 나온다.
//private.volume = 150; // private 접근 제어자를 사용했기 때문에 수정 불가.
private.apple = 100; //private 접근 제어자가 아니기 때문에 수정 가능
}
}
<public, default, private 사용 코드>
<기본 클래스>
public class AccessData {
public int publicField;
int defaultField;
private int privateField;
public void publicMethod() {
System.out.println("publicMethod Call " + publicField);
}
void defaultMethod() {
System.out.println("defaultMethod Call " + defaultField);
}
private void privateMethod() {
System.out.println("privateMethod Call " + privateField);
}
public void innerAccess() {
System.out.println("inner Call");
publicField = 100;
defaultField = 200;
privateField = 300;
publicMethod();
defaultMethod();
privateMethod();
}
}
<Main class>
public static void main(String[] args) {
AccessData data = new AccessData();
//public 호출 가능
data.publicField = 1;
data.publicMethod();
//같은 패키지 default 호출 가능
data.defaultField = 2;
data.defaultMethod();
//private 호출 불가
// data.privateField = 3;
// data.privateMethod();
data.innerAccess();
}
※ 출처: Inflearn 김영한-Java 강의 중
'Study > Java' 카테고리의 다른 글
[자바/Java] - 상속 (0) | 2024.01.13 |
---|---|
[자바/Java] - 자바 메모리 구조(스택과 큐 자료 구조) (0) | 2024.01.12 |
[자바/Java] - 객체 지향, 절차 지향 (0) | 2024.01.08 |
[자바/Java] - NullPointerException 예외 (0) | 2024.01.07 |
[자바/Java] - 기본형, 참조형 (2) | 2024.01.07 |