▶객체지향프로그래밍 개발의 세가지 단계
- 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 |
댓글