Practice/JAVA
[JAVA] 정보은닉
요모조묘
2023. 3. 7. 14:03
객체지향 특징 : 캡슐화(은닉의 뜻)
은닉을 한다. private가지고. (맴버필드 앞 )
class Student{
String name;
int age;
//setXX
//getXX
}
Student st - new Student();
st.age=2 //오류는 아니지만 시나리오 입장에서 오류이다.
:이러한 모호한 데이터가 수정되거나 조회되지 않도록
개발자가 제공하는 대로만 조회 =getXxx() , 수정=setXxx()할수 있도록 메소드를 제공한다.
set, get 주는대로만 써 ! ===> 맴버필드를 private로
🔔 구현방법
1. setXxx 규칙
제한자 : public
리터타입 : void
메소드이름: set필드명(필드type 변수);
인수 : 필수
2. getXxx 규칙
제한자 : public
리턴타입 : 필수
메소드이름: get필드명();
인수 : 없음
🔔 코드
package day04;
public class Customer {
private String id;
private int age;
private String addr;
public Customer() {}
public Customer(String id, int age, String addr) {
//생성자 호출방법 - this(값,...)반드시 생성자 구현부 첫번째 줄
this(id,age);
this.addr = addr;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public Customer(String id, int age) {
super();
this.id = id;
this.age = age;
}
}
package day04;
public class CustomerMain {
public static void main(String[] args) {
Customer [] cuArr = new Customer[3];
Customer cu1 = new Customer();
Customer cu2 = new Customer("jang",20,"서울"); //모든필드 초기화
Customer cu3 = new Customer("hee",30);
for(Customer c: cuArr) {
System.out.print("아이디 : "+c.getId()+"\t");
System.out.print("나이 : "+c.getAge()+"\t");
System.out.print("주소 : "+c.getAddr()+"\t");
}
//나이변경
cuArr[0].setAge(25);
System.out.println("-------변경후=----------");
for(Customer c: cuArr) {
System.out.print("아이디 : "+c.getId()+"\t");
System.out.println("나이 : "+c.getAge()+"\t");
System.out.println("주소 : "+c.getAddr()+"\t");
}
}
}