반응형
Encapsulation 이란?
캡슐화는 객체를 만들 때, 객체 내부에 들어있는 변수나 메소드등의 정보를 객체 밖으로 공개하지 않고,따로 공개하는 변수나 메소드를 통해서 객체를 사용할 수 있게 해주는 개념을 말한다.
캡슐화는 프로그램을 복잡하지않게 만들 수 있는데 도움을 주며,
소프트웨어 개발자에게 몇가지 장점을 제공한다.
Encapsulation하려면
- 멤버변수에는 직접 접근이 불가능하게 접근제한자를 private 으로 지정한다.\
- 접근이 가능한 메소드를 선언한다. 메소드의 접근 제한자는 public 으로 지정한다.
Encapsulation예제
Member.java Custemer.java Company.java(main)
Given : Member.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
public class Member { private String id; private String name; private int age; public int getAge() {return age;} public void setAge(int age) {this.age = age;} public String getId() {return id;} public void setId(String id) {this.id = id;} public String getName() {return name;} public void setName(String name) {this.name = name; } //생성자 : 객체만들고 초기화 public Member(String id, String name, int age){ this.id = id; this.name = name; this.age = age; } public void printInfo(){ System.out.println("*******************************"); System.out.println("아이디 : " + this.id); System.out.println("이름 : " + this.name); System.out.println("나이 : " + this.age); System.out.println("*******************************"); } } |
Given : Customer.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
public class Customer { private String id; private String name; private int age; public int getAge() {return age;} public void setAge(int age) {this.age = age;} public String getId() {return id;} public void setId(String id) {this.id = id;} public String getName() {return name;} public void setName(String name) {this.name = name; } //생성자 : 객체만들고 초기화 public Customer(String id, String name, int age){ this.id = id; this.name = name; this.age = age; } public void printInfo(){ System.out.println("*******************************"); System.out.println("아이디 : " + this.id); System.out.println("이름 : " + this.name); System.out.println("나이 : " + this.age); System.out.println("*******************************"); } } |
Given : Company.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
import java.util.*; //java.util.Scanner 와 같은 java.util.을 생략 해준다. public class Company { public static void print(String msg){ System.out.println(msg); } public static void menu(){ print("========Menu========"); print("1.고객등록"); print("2.사원등록"); print("3.모든 고객 보기"); print("4.모든 사원 보기"); print("5.종료"); print("===================="); } public static void main(String[] args){ Member[] m = new Member[2]; Customer[] c = new Customer[2]; int index=0; while(true){ menu(); System.out.print("메뉴 번호 입력 : "); Scanner sc= new Scanner(System.in); //사용자의 키보드로 부터 int num = sc.nextInt(); switch(num){ case 1: System.out.println("고객 등록을 선택하셨습니다.\n"); System.out.print("고객아이디 : "); String id = sc.next(); System.out.print("고객 이름 : "); String name = sc.next(); System.out.print("고객 나이 : "); int age = sc.nextInt(); Customer cc = new Customer(id, name, age); cc.setId(id); cc.setName(name); cc.setAge(age); cc.printInfo(); if(index >= c.length){ System.out.println("정원초과"); } else{ c[index] = cc; index++; } break; case 2: // System.out.println("사원 등록을 선택하셨습니다.\n"); // System.out.print("고객아이디 : "); // String id = sc.next(); // // System.out.print("고객 이름 : "); // String = sc.next(); // // System.out.print("고객 나이 : "); break; case 3: System.out.println("고객 등록정보를 선택하셨습니다.\n"); for(int i=0;i<c.length;i++){ // c[i].printInfo(); Customer cus = c[i]; cus.printInfo(); } break; case 4: System.out.println("사원 등록정보를 선택하셨습니다.\n"); break; case 5: System.out.println("Bye Bye~\n"); System.exit(0); break; default: System.out.println("메뉴를 잘못 선택하셨습니다.\n"); } // if(num <6){System.out.println("입력한 번호는 : " + num);} // else{System.out.println("잘못 입력한 번호입니다.");} } } } |
반응형
'Programing > JAVA' 카테고리의 다른 글
JAVA :: 자바 :: 자바환경셋팅 (0) | 2008.10.27 |
---|---|
//Swing 프로그램 기본 틀 (0) | 2008.10.24 |
자바 :: JAVA :: Thread :: Socket :: 쓰레드 :: Chat :: 단방향 채팅 (2) | 2008.10.23 |
자바 :: JAVA :: Thread :: 쓰레드 :: 다중 상속 (1) | 2008.10.20 |
JAVA :: 자바 :: instanceof :: Type 비교연산자 (3) | 2008.10.16 |
JAVA :: 자바 :: 예외처리 :: exception :: try :: catch :: finally :: 사용자 정의 예외클래스 만들기 (0) | 2008.10.16 |
JAVA :: 자바 :: 예외처리 :: exception :: try :: catch :: finally (0) | 2008.10.15 |
java 세미나 (0) | 2008.10.15 |