Programing/JAVA

JAVA :: 자바 :: 예외처리 :: Encapsulation

2008. 10. 20. 00:21
반응형

Encapsulation 이란?

캡슐화는 객체를 만들 때, 객체 내부에 들어있는 변수나 메소드등의 정보를 객체 밖으로 공개하지 않고,
 따로 공개하는 변수나 메소드를 통해서 객체를 사용할 수 있게 해주는 개념을 말한다.
캡슐화는 프로그램을 복잡하지않게 만들 수 있는데 도움을 주며,
소프트웨어 개발자에게 몇가지 장점을 제공한다.

Encapsulation하려면

  1. 멤버변수에는 직접 접근이 불가능하게 접근제한자를 private 으로 지정한다.\
  2. 접근이 가능한 메소드를 선언한다. 메소드의 접근 제한자는 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
'Programing/JAVA' 카테고리의 다른 글
  • 자바 :: JAVA :: Thread :: Socket :: 쓰레드 :: Chat :: 단방향 채팅
  • 자바 :: JAVA :: Thread :: 쓰레드 :: 다중 상속
  • JAVA :: 자바 :: instanceof :: Type 비교연산자
  • JAVA :: 자바 :: 예외처리 :: exception :: try :: catch :: finally :: 사용자 정의 예외클래스 만들기
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (471) N
      • 금융 (61)
      • Programing (289) N
        • Algorithm (39)
        • API (2)
        • javascript (121)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (17)
        • MS-SQL (1)
        • MySQL (12)
        • 보안 (5) N
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (35) N
        • 회고 (3)
        • 컬럼 (3) N
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    IT·컴퓨터
    IT 관련
    php
    기초
    읽고 싶은 책
    사고 싶은 책
    블로그
    위시리스트
    It
    SQL
    디자인패턴
    js패턴
    jsp
    Java
    자바
    JavaScript
    iT's MY LiFE
    자바스크립트
    자바스크립트유틸
    IT블로그
Dongkkase
JAVA :: 자바 :: 예외처리 :: Encapsulation
상단으로

티스토리툴바