https://smoothiecoding.kr/%EC%9E%90%EB%B0%94-private-%EC%A0%91%EA%B7%BC%EC%A0%9C%EC%96%B4%EC%9E%90/
01.
package method;
public class Point {
// package 생략 (접근가능한 정도가 package 까지라는)
// class 의 멤버 필드에 접근제한자가 표현되지 않을 경우 = package
// 보통 package 는 표현하지 않고, 생략함
private int x;
//private 는 해당 클래스에서만 접근이 가능하다. 보통 보안처리 할 때 사용함
int y;
//return 뒤에 있는 value(값) 가 존재하면
//returnType 을 지정해야함 ->즉 int, void, double 등..
public int getX( ) { //메서드 정의// int에 void 를 넣을 수 도 있음
System.out.println();
return x; // 메서드 종료의 의미
}//메서드 종료
private class AAA{}
//여기도 package 가 생략되어 있다.
public void print() {
System.out.println("x = "+x );
System.out.println("y = "+y);
}
}//Point
package method;
public class MethodTest01 {
public static void main(String[] args) {
int a;
//stack 메모리를 이용하여 4byte 공간을 "a" //변수 선언
//저장 가능한 value 는 int 형 data 이다.
a= 4;
System.out.println(a);
Point p;
// point 라는 객체타입의 "p"
// stack 메모리를 이용하여 4byte 공간을 "p" //변수 선언
// heap에 할당된 메모리 주소를 참조
p=new Point(); //메서드 생성자를 부여함
System.out.println(p.getX()); //우회방법, p 메모리의 x을 출력 해주세요 // class 에서 private 로 바꾸면 접근 불가
System.out.println(p.y); // p 메모리의 y을 출력 해주세요
p.print();//메서드 호출
}
}
02.
package method;
public class Person {
// 객체를 만들면 생성되는
private String name;
private int birth;
private String phone;
private String adress;
// 매개변수 = 지역변수 : 메서드 내부에서 사용
// 메서드가 끝나면 소멸되는 지역변수의 일종
// 매개 변수
void setName(String name) { //호출을 해줘야 생성되는 지역변수
this.name=name; // 즉, 객체를 만들고 호출을해줘야 하는 지역변수
} //this 는 클래스(필드) 안에 있는 것
//메서드 생성 = 메서드 정의
void setBirth(int birth) {
this.birth=birth;
}
void setPhone(String phone) {
this.phone=phone;
}
void setAdress(String adress) {
this.adress=adress;
}
void setAll(String name, int birth, String phone) {
this.name=name;
this.birth=birth;
this.phone=phone;
}// 한꺼번에 메서드 할 때// 생성자한테 사용할 때
//메서드
public void display() {
System.out.println("name = "+name);
System.out.println("birth = "+birth);
System.out.println("phone = "+phone);
System.out.println("adress = "+adress);
}
package method;
public class MethodTest02 {
public static void main(String[] args) {
Person p=new Person();
// System.out.println(p.name); //name is not visible (접근이 불가합니다)
p.setName("홍길동");
p.setBirth(19820625);
p.setPhone("010-0000-0000");
p.setAdress("서울 시 어딘가 ");
p.display(); //출력
p=null;
// 가비지컬렉터가 자동으로 heap 메모리를 관리한다.
// 메서드 사용 = 메서드 호출(call)
}
}
03. 상속관계
package aaa;
public class AAA {
public int a; //아무곳에서나 허용 가능
int b; //동일한 package 까지 허용 가능
protected int c;
private int d;
void disp() {
d= 10;
}
}
AAA를 상속 하는 방법
package bbb;
import aaa.AAA;
//AAA와 같이 이름만 써야함
public class BBB extends AAA { //상속하는 법
public void display() {
a=10; // 허용 됨
// b=20; // 허용 되지 않음 // 다른 패키지이기에 허용되지 않음
c=30; // 허용 됨
// d=40; // 허용 되지 않음 // 다른 패키지이기에 허용되지 않음
}
}
c의 경우에는 상속이 되어있는 경우 허용된다.
허용가능한 범위를 순차적으로 나열해 본다면,
public > protected > pakage > private 이다.
'JAVA _기초' 카테고리의 다른 글
[JAVA] 자바의 Enum, 열거형 이란 (0) | 2023.02.17 |
---|---|
[JAVA] 문자열 (String) (0) | 2023.02.15 |
[JAVA] JAVA의 연산자 (0) | 2023.02.15 |
[JAVA] JAVA 의 DATA TYPE (0) | 2023.02.15 |
[JAVA] 프로그래밍 개발 관련 용어 정리 (0) | 2023.02.15 |