Setters_Getters_Java

2021. 12. 16. 09:12ksmart_Java/Java

728x90

private 접근 지정자는 정상적인 user도 접근하지 못하게 되어있어서

접근하려면 getter와 setter를 이용하여 우회적으로 접근해야 한다.

 

Getters
public class AA01 {
	public static void main(String[] args) {
		Bb01 cc01=new Bb01("홍길동","010-0001");
		System.out.println(cc01.name);
		System.out.println(cc01.number);
	}
}
class Bb01{
	String name;
	String number;
	public Bb01(String d, String e) {
		name=d;
		number=e;
	}
}

 

AA01.java 클래스에 위 코드 입력

이름은 만든 순서대로 abcde순

cc01 객체참조 변수에 할당된 주소 Bb01 찾아가서 String data type인 d변수에 홍길동을 넣고

String data typed인 e 변수에 010-0001을 넣는다.

=>name="홍길동";

=>number="010-0001";

"홍길동"이 담겨진 cc01.name을 출력한다.

"010-0001"이 담겨진 cc01.number를 출력한다.

전역변수앞에 접근지정자 private로 변경하면 접근이 안되서 6,7번이 에러가 뜬다.

 

getting 메서드를 호출하여 name값을 초기화 시킨 뒤

6,7번에 getName();으로 받아준다.

 

Setter
package js1211;

public class AA01{
	public static void main(String[] args) {
		Lock lock = new Lock("123!@#");
		
		lock.password="654#@!";
		
		System.out.println(lock.toString());
	}

}
class Lock{
	String password;
	public Lock(String p) {
		password=p;
	}
	public String toString() {
		return String.format("Lock{ password :%s}", password);
	}
}

 

package js1211;

public class AA01{
	public static void main(String[] args) {
		Lock lock = new Lock("123!@#");
		
		lock.Setpassword("654#@!");
		
		System.out.println(lock.toString());
	}

}
class Lock{
	private String password;
	public Lock(String p) {
		password=p;
	}
	public String toString() {
		return String.format("Lock{ password :%s}", password);
	}
	public void Setpassword(String p) {
		password=p;
	}
}

 

728x90