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();
}
}
}