p349
캡슐화
1. 변수에 private 붙이기
2. getter/setter 생성하기
캡슐화 안 한 경우
→ 개인정보 유출 우려 있음
public static void main(String[] args) {
// 메모리 저장
Sawon s1 = new Sawon();
s1.sabun = 1;
s1.name = "김가가";
s1.dept = "개발부";
s1.job = "대리";
s1.pay = 3500;
Sawon s2 = new Sawon();
s2.sabun = 2;
s2.name = "김나나";
s2.dept = "마케팅";
s2.job = "과장";
s2.pay = 4000;
System.out.println(s1.sabun + " " + s1.name + " " + s1.job + " " + s1.pay);
System.out.println(s2.sabun + " " + s2.name + " " + s2.job + " " + s2.pay);
}
캡슐화 한 경우
1 김가가 개발부 대리 3500
2 김나나 마케팅 과장 4000
class Sawon
{
private int sabun;
private String name;
private String dept;
private String job;
private int pay;
public int getSabun() {
return sabun;
}
public void setSabun(int sabun) {
this.sabun = sabun;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getPay() {
return pay;
}
public void setPay(int pay) {
this.pay = pay;
}
}
public class 캡슐화 {
public static void main(String[] args) {
Sawon s1 = new Sawon();
s1.setSabun(1);
s1.setName("김가가");
s1.setDept("개발부");
s1.setJob("대리");
s1.setPay(3500);
System.out.println(s1.getSabun() + " " + s1.getName() + " "
+ s1.getDept() + " " + s1.getJob() + " " + s1.getPay());
Sawon s2 = new Sawon();
s2.setSabun(2);
s2.setName("김나나");
s2.setDept("마케팅");
s2.setJob("과장");
s2.setPay(4000);
System.out.println(s2.getSabun() + " " + s2.getName() + " "
+ s2.getDept() + " " + s2.getJob() + " " + s2.getPay());
}
}
p336
패키지
*생성
패키지 com.sist.database
패키지 com.sist.user
// Sawon.java
package com.sist.database;
public class Sawon {
private int sabun;
private String name;
private String dept;
private String job;
private int pay;
public int getSabun() {
return sabun;
}
public void setSabun(int sabun) {
this.sabun = sabun;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDept() {
return dept;
}
public void setDept(String dept) {
this.dept = dept;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
public int getPay() {
return pay;
}
public void setPay(int pay) {
this.pay = pay;
}
}
// SawonDatabase.java
package com.sist.database;
public class SawonDatabase {
// 공통 데이터 공유 → static 필요
private static Sawon[] sawon = new Sawon[100];
public Sawon[] getSawon() {
return sawon;
}
public void setSawon(Sawon[] sawon) {
this.sawon = sawon;
}
}
// User1.java
package com.sist.user;
import com.sist.database.*;
public class User1 {
public static void main(String[] args) {
SawonDatabase data = new SawonDatabase();
Sawon[] sawon = data.getSawon();
sawon[1] = new Sawon();
sawon[1].setSabun(2);
sawon[1].setName("김나나");
sawon[1].setDept("마케팅");
sawon[1].setJob("과장");
sawon[1].setPay(4000);
// 목록 출력
for(Sawon s:sawon)
{
if(s!=null)
{
System.out.println("사번: " + s.getSabun());
System.out.println("이름: " + s.getName());
System.out.println("부서: " + s.getDept());
System.out.println("직위: " + s.getJob());
System.out.println("연봉: " + s.getPay());
}
}
}
}
// 출력
사번: 2
이름: 김나나
부서: 마케팅
직위: 과장
연봉: 4000
// User2.java
package com.sist.user;
import com.sist.database.*;
public class User2 {
public static void main(String[] args) {
SawonDatabase data = new SawonDatabase();
Sawon[] sawon = data.getSawon();
sawon[0] = new Sawon();
sawon[0].setSabun(1);
sawon[0].setName("김가가");
sawon[0].setDept("개발부");
sawon[0].setJob("대리");
sawon[0].setPay(3500);
// 목록 출력
for(Sawon s:sawon)
{
if(s!=null)
{
System.out.println("사번: " + s.getSabun());
System.out.println("이름: " + s.getName());
System.out.println("부서: " + s.getDept());
System.out.println("직위: " + s.getJob());
System.out.println("연봉: " + s.getPay());
}
}
}
}
// 출력
사번: 1
이름: 김가가
부서: 개발부
직위: 대리
연봉: 3500
'수업' 카테고리의 다른 글
+23 내부클래스, 예외처리 (0) | 2022.06.03 |
---|---|
+22 super, this, 형변환, 추상클래스, 인터페이스 (0) | 2022.06.02 |
+19 리뷰 프로그램(등록, 보기, 수정, 삭제) (0) | 2022.05.27 |
+18 생성자, 초기화 블럭 (static, instance) (0) | 2022.05.26 |
+17 멤버 메소드 (1) | 2022.05.25 |