data : int - Access(클래스명)
default : 파란색 세모
public : 초록색 세모
protected : 노란색 마름모
private : 빨간색 네모
Cloud 클래스의 메서드에서 Access 에 있는 필드에 접근하기
Access 앞에 public이 붙어있는 것은 하나의 프로젝트 내에서 모두가 접근 가능 패키지가 달라도 접근 가능
하지만 Cloud 앞에 public을 붙이면 오류가 난다
메인 클래스에만 public을 붙일 수 있다
즉, Access라는 이름의 자바파일을 만들었기 때문에 그 안에서 퍼블릭 클래스는 Access 단 하나여야 한다
따라서 다른 클래스를 만들게 되면 디폴트가 붙는 것
하나의 파일 안에 여러개의 클래스를 만들 때에는 메인 클래스에만 퍼블릭이 붙을 수 있다!!!
package day13;
public class Access2 {
void function() {
Access a = new Access(); //객체화 하여 접근하기
a.data3=30;
System.out.println(a.data3);
}
public static void main(String[] args) {
Access2 a = new Access2(); //객체화 하여 접근하기
a.function();
}
}
30
같은 패키지 내에서는 퍼블릭 디폴트 프로텍티드 세가지는 접근이 가능하다, 프라이빗은 불가
퍼블릭이라는 것은 다른 패키지에서도 접근이 가능
프로텍티드, 디폴트는 다른 패키지에서 접근 불가
클래스, 메서드, 변수 전부 접근권한제어자가 붙을 수 있다
private이 달려있는 변수에 접근하는 방법
package access;
import day13.Access;
public class Access3 {
void function() {
Access a = new Access();
}
}
이 상태에서 function 앞에 public을 붙여주면 다른 패키지에서도 사용할 수 있게 된다
접근을 다 막아줄거라면 private을 써주면 된다
메서드를 사용해주면 직접 접근은 아니지만 간접 접근은 할 수 있다
day13 패키지
package day13;
public class Access { //앞에 public이 붙어있는 것은 하나의 프로젝트 내에서 모두가 접근 가능 패키지가 달라도 접근 가능
int data1=10; //디폴트 접근 권한 제어자
public int data2 =20;
protected int data3= 30;
private int data4= 40;
public int getData4() { //모든곳에서 접근 가능하도록 public
return data4; //get이므로 리턴타입 돌려준다 따라서 void 가 아닌 int형으로 작성
}
void f() {
}
}
//Cloud 클래스의 메서드에서 Access 에 있는 필드에 접근하기
class Cloud{
void function() {
Access a = new Access(); //Access객체화 하여 접근하기
}
}
public int getData4() { //모든곳에서 접근 가능하도록 public
return data4; //get이므로 리턴타입 돌려준다 따라서 void 가 아닌 int형으로 작성
}
access 패키지
package access;
import day13.Access;
public class Access3 {
void function() {
private Access a = new Access();
System.out.println(a.getData4());
}
}
data4에 접근하여 값을 출력할 수 있다
getter setter 만들기
Alt + Shift + s > r
public int getData4() {
return data4;
}
public void setData4(int data4) {
this.data4 = data4;
}
보통 private에 getter setter를 많이 쓴다
getter() : 데이터 가져오기 / setter() : 데이터 변경
public 제어자를 붙여서
다른 클래스 혹은 다른 패키지에서도 private 변수에 접근할 수 있도록 해준다
'Dev. > java' 카테고리의 다른 글
지역변수/전역변수/static변수 (0) | 2022.06.06 |
---|---|
Java 항공 관리 프로그램 (0) | 2022.05.26 |
Java :: Class(생성자) (0) | 2022.05.23 |
Java :: Class(객체화) (0) | 2022.05.22 |
Java 메서드 2 (0) | 2022.05.22 |
댓글