캡슐화(Encapsulation) - 정보은닉(Information Hiding)
-사용자의 편의와 안정성을 위해 숨길 것은 숨기고, 공개할 것은 공개
-주로 속성은 숨기고 속성에 접근시 메소드(기능)를 통해 접근 처리
자바빈(Java Bean) : 데이터를 저장하고 접근을 제어하여 데이터 관리
-멤버변수(property)의 접근제한자는 private으로 선언
-멤버변수(property)마다 get/set 메소드 제공(선택적으로 get만 제공)
-get/set 메소드는 public 으로 선언
-get 메소드는 파라미터 없고, set 메소드는 하나 이상의 파라미터 존재
-멤버변수(property)가 boolean 타입이면 get 메소드 대신 is 메소드 사용가능
-외부에서 멤버변수(property) 접근시에는 get/set 메소드를 통해 접근
package com.mystudy.bean;
/*
자바빈(Java Bean) : 데이터를 저장하고 접근을 제어하여 데이터 관리
-멤버변수(property)의 접근제한자는 private으로 선언
-멤버변수(property)마다 get/set 메소드 제공(선택적으로 get만 제공)
-get/set 메소드는 public 으로 선언
-get 메소드는 파라미터 없고, set 메소드는 하나 이상의 파라미터 존재
-멤버변수(property)가 boolean 타입이면 get 메소드 대신 is 메소드 사용가능
-외부에서 멤버변수(property) 접근시에는 get/set 메소드를 통해 접근
*/
public class Student {
private String name; //다이렉트로 접근해서 쓸 수 없도록 프라이빗 선언, 외부에서 접근 불가
private int kor;
private int eng;
private int math;
private int tot;
private double avg;
//외부에서 접근(사용)할 수 있도록 메소드 제공(public)
//명칭 : set메소드, setter, set property
public void setName(String name) { //데이터를 받고
this.name = name; //필드에 설정
}
//명칭 : get메소드, getter, get property
public String getName() { //get" " 값을 주고
return name; //리턴해주면 된다
}
//kor에 set메소드
public void setKor(int kor) {
this.kor = kor;
}
//kor에 get메소드
public int getKor() {
return kor;
}
//english
public void setEng(int eng) {
this.eng = eng;
}
public int getEng() {
return eng;
}
//math
public void setMath(int math) {
this.math = math;
}
public int getMath() {
return math;
}
//total
public void setTot() {
this.tot = kor + eng + math;
}
public int getTot() {
return tot;
}
//average
public void setAvg() {
this.avg = tot * 100 / 3 / 100.0;
}
public double getAvg() {
return avg;
}
}
public class StudentMain
public static void main(String[] args) {
Student stu = new Student();
//stu.name = "홍길동"; //private 선언이 안되어 있을때는 쓸 수 있지만 선언이 되어있다면 쓸 수 없다
//System.out.println(stu.name);
stu.setName("홍길동");
System.out.println(stu.getName());
stu.setKor(95);
System.out.println("국어 : " + stu.getKor());
stu.setEng(83);
System.out.println("영어 : " + stu.getEng());
stu.setMath(71);
System.out.println("수학 : " + stu.getMath());
stu.setTot();
System.out.println("총합 : " + stu.getTot());
stu.setAvg();
System.out.println("평균 : " + stu.getAvg());
}
}
홍길동
국어 : 95
영어 : 83
수학 : 71
총합 : 249
평균 : 83.0