본문 바로가기

개발자노트

클래스) 접근제어자

package class02;

// 접근제어자 ( 캡슐화와 관련이 있음=>정보은닉)
class Student{
	private String name; // 외부에서 개입 차단 , 내부에선 쓸 수 있음
	private int score;   //(멤버변수 직접적근 차단)
	// getter,setter
	// : private으로 직접 접근 할 수 없는 멤버 변수의 값을
	//   출력하거나(getter), 변경(값대입)하기 위해서 (setter) 사용
	void setName(String name) { // 받아온 값을 나한테 넣는게 목적, 셋터는 인자는 있는데 output은 없는데 일반적
		this.name=name;	
	}
	void setScore(int score) {
		this.score=score;
	}
	
	String getName() { // 게터는 인자는 없고 return이 있는 경우가 많다.
		return this.name;
	}
	int getScore() {
		return this.score;
	}
	
	void showInfo() {
		System.out.println(this.name + "학생은 " + this.score + "점입니다."); // 내 멤버변수니까 가독성 위해 this 붙이는게 좋음
	}

	Student(String name, int score) {
		this.name = name;
		this.score = score;
		System.out.println(this.name + "학생 입력완료!");
}
}
public class Test03 {

	public static void main(String[] args) {
		
		Student[] data = new Student[2];
		data[0]=new Student("홍길동",30);
		data[1]=new Student("아무무",80);
		
		// data[0].score=100; // 악의적인 접근 혹은 실수, 이런것을 방지하기 위해 접근제어자가 필요 
		
		for (int i = 0; i < data.length; i++) {
				data[i].showInfo();
			
		}
	}

}