JAVA _기초

[JAVA] Private 정보 가지고 오기

Journey Jeong 2023. 2. 15. 19:11

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