본문 바로가기
JAVA

[OOP] 객체와 클래스 (클래스구성요소)

by HANdeveloper 2022. 7. 26.

▶객체지향프로그래밍 개발의 세가지 단계

  • 1단계 : 클래스를 설계
  • 2단계 : 설계된 클래스를 가지고 사용할 객체를 생성
  • 3단계 : 생성된 객체를 이용

▶클래스의 구성요소

필드 (Field)

 - 객체의 데이터(속성 )가 저장되는 곳

 - 선언형태는 변수와 비슷하나 필드를 변수로 부르지는 않음

변수 클래스영역 인스턴스변수(iv)
클래스변수(cv)
[static+iv]
메소드영역 로칼변수(lv)

 - 변수는 생성자와 메소드가 종료되면 자동소멸

 - 필드는 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재함

 

생성자 (Constructor)

 - 객체 생성 시 초기화 담당

 - new연산자로 호출되는 {}중괄호 블록

 - 메소드와 비슷하게 생겼으나 클래스 이름으로 되어있고 리턴 타입은 없음

 - 객체를 생성하려면 반드시 생성자를 호출해야함

 - 생성자를 여러개 정의하려면 오버로딩해야함

 

메소드 (Method)

 - 객체의 동작에 해당하는 실행블록

 - 장점: 코드 중복줄임, 코드 관리쉬움, 코드 재사용가능, 코드 간결해서 이해쉬움

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
101
102
103
public class Car {
   
    
    // 1. 멤버필드(변수)[속성]
     
    private String no;   //차량번호
    private int inTime;  //입차시간
    private int outTime; //출차시간
    private int fee;     //주차요금
    
    
    // 2. 생성자 : 초기값을 가진 차객체생성
     
    public Car() {
    }
 
    
    public Car(String no,int inTime) {
        this.no=no;
        this.inTime=inTime;
    }


    public Car(String no, int inTime, int outTime, int fee) {
    
        this.no = no;
        this.inTime = inTime;
        this.outTime = outTime;
        this.fee = fee;
    }
 
    
     // 3. 멤버메쏘드[기능](차객체가 가지고있는 기능 )
     
    
     // 입차 시 데이타(번호,시간)대입
     
    public void setIpChaData(String no,int inTime) {
        this.no=no;
        this.inTime=inTime;
    }  
    
     // 요금계산
     
    public void calculateFee() {
        this.fee=(this.outTime-this.inTime)*Car.FEE_PER_HOUR;
    }
     
     // 헤더출력
     
    public void headerPrint() {
        System.out.println("-----------------------------------");
        System.out.printf("%s %s %s %s\n""차량번호""입차시간""출차시간""주차요금");
        System.out.println("-----------------------------------");    
    }
    
     //차량정보출력
     
    public void print() {
        System.out.printf("%7s %7d %9d %8d\n"this.no, this.inTime, this.outTime, fee);
    }
    public String getNo() {
        return no;
    }
    public void setNo(String no) {
        this.no = no;
    }
    public int getInTime() {
        return inTime;
    }
    public void setInTime(int inTime) {
        this.inTime = inTime;
    }
    public int getFee() {
        return fee;
    }
    public void setFee(int fee) {
        this.fee = fee;
    }
    public int getOutTime() {
        return outTime;
    }
    public void setOutTime(int outTime) {
        this.outTime=outTime;
    }
    
    
    
     
  
    
}
 
 
 
 
cs

'JAVA' 카테고리의 다른 글

[JAVA] 정적 제한자 static  (0) 2022.07.26
[OOP] 오버로딩과 오버라이딩 차이  (0) 2022.07.26
[OOP] 캡슐화 Encapsulation  (0) 2022.07.26
[OOP] 객체지향 프로그래밍  (0) 2022.07.26
[JAVA] Control Character (제어문자)  (0) 2022.07.26

댓글