프로그래밍 언어/JAVA

객체 간 협력 - 기본 클래스 구현

딤섬뮨 2021. 4. 11. 23:43
728x90
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
package sec1;
//멤버 변수 선언
public class student1 { 
    String name;
    int money;
//매개변수를 가지는 생성자
    public student1(String name, int money) {
        this.name = name;
        this.money = money;
 
    }
//takebus 메소드
    public void takebus(takeBus bus) {
        bus.take(1000);
        this.money -= 1000;
    }
//takesubway 메소드
 
    public void takeSubway(takeSubway subway) {
        subway.take(1000);
        this.money -= 1500;
 
    }
//showInfo 메소드
 
    public void showInfo() {
        System.out.println(name + "님의 남은 돈은" + money + "입니다");
 
    }
 
}
 
package sec1;
//takebus 클래스
//멤버 변수 선언
public class takeBus {
    int busNum;
    int passengerCount = 0;
    int money;
//버스번호 매개변수를 가지는 생성자
    public takeBus(int busNum) {
        this.busNum = busNum;
    }
//돈을 매개변수로 가지는 생성자
    public void take(int money) {
        this.money += money;
        passengerCount++;
 
    }
//showInfo 메서드 이떄 static쓰면 안됨 
    public void showInfo() {
        System.out.printf("%d 버스의 수입은 %d 손님수는 %d 입니다"this.busNum, this.money, passengerCount);
    }
}
//지하철 클래스 주석은 버스와 동일
package sec1;
 
public class takeSubway {
    String lineNumber;
    int passengerCount = 0;
    int money;
 
    public takeSubway(String lineNumber) {
        this.lineNumber = lineNumber;
 
    }
 
    public void take(int money) {
        this.money += money;
        passengerCount++;
    }
 
    public void showInfo() {
        System.out.printf("%s지하철의 수입은 %d 손님수는 %d 입니다"this.lineNumber, this.money, passengerCount);
    }
 
}
//버스타는 클래스
package sec1;
 
public class TakeTrans {
 
    public static void main(String[] args) {
        student1 studentJames = new student1("James"5000); //생성자로 학생 생성
        student1 studentSienna = new student1("Sienna"4000);
 
        takeBus bus100 = new takeBus(100); //생성자로 busNum 선언
        studentJames.takebus(bus100);//James가 버스를 탐
        studentJames.showInfo();
        bus100.showInfo();
 
        takeSubway subwayred = new takeSubway("red");
        studentSienna.takeSubway(subwayred);
        studentSienna.showInfo();
        subwayred.showInfo();
 
    }
 
 
}
 
cs
728x90

'프로그래밍 언어 > JAVA' 카테고리의 다른 글

[JAVA] immutable 객체?방어적 복사?  (1) 2022.11.15
JAVA - 스트림 가공하기  (0) 2022.10.06
JAVA - 스트림 생성하기  (0) 2022.10.06