클래스의 상호작용
매개변수에 다른 객체를 넘겨줌으로써 상호작용을 할 수 있다.
- buyer의 관점
package ex02.classobj.fruit04;
/*
<클래스와 클래스의 상호관계>
1) 요구사항 : "과일구매자는 과일장수에게 사과 2개를 샀다"
를 객체지향 프로그래밍으로 묘사하라
2) 명사/동사 분류법
명사 ; 클래스, 필드
동사 ; 클래스(행위들이 여러개 모인 동사, 큰 동사), 메서드
3) 명사 ; 과일구매자, 과일장수, 사과
4) 동사 ; 샀다
5) 클래스의 대상 ; 과일구매자, 과일장수
6) 필드 : 사과(2개)
7) 샀다 : 메서드
*/
public class FruitMain {
public static void main(String[] args) {
FruitSeller seller = new FruitSeller();
FruitBuyer buyer = new FruitBuyer();
// seller.saleApple(buyer,2000); 판매자 입장에서 이렇게 해도 된다.
buyer.buyApple(seller, 2000);
seller.showSaleResult();
buyer.showBuyResult();
}
}
package ex02.classobj.fruit04;
public class FruitBuyer {
int myMoney = 5000; //보유금액
int numOfApples = 0; //사과개수
public void buyApple(FruitSeller seller, int money) {
numOfApples += seller.saleApple(money);
myMoney -= money;
}
public void showBuyResult() {
System.out.println("*** 과일 구매자의 현재 현황 ***");
System.out.println("현재 잔액 : " + myMoney);
System.out.println("사과 개수 : " + numOfApples);
}
}
package ex02.classobj.fruit04;
public class FruitSeller {
int numOfApples = 20; //사과 개수
int saleMoney = 0; //판매금액
final int APPLE_PRICE = 1000; //사과 1개 가격
public int saleApple(int money) {
int num = money / APPLE_PRICE;
numOfApples -= num;
saleMoney += money;
return num;
}
public void showSaleResult() {
System.out.println("*** 과일 장수의 현재 현황 ***");
System.out.println("남은 사과 : " + numOfApples);
System.out.println("판매 수익 : " + saleMoney);
}
}
- seller 관점
package ex02.classobj.fruit05;
public class FruitMain {
public static void main(String[] args) {
FruitSeller seller = new FruitSeller();
FruitBuyer buyer = new FruitBuyer();
seller.saleApple(buyer, 2000);
seller.showSaleResult();
buyer.showBuyResult();
}
}
package ex02.classobj.fruit05;
public class FruitSeller {
int numOfApples = 20; // 사과 개수
int saleMoney = 0; // 판매 금액
final int APPLE_PRICE = 1000; // 사과 1개 가격
public void saleApple(FruitBuyer buyer, int money) {
int appleNum = money/APPLE_PRICE;
buyer.buyApple(appleNum, money);
numOfApples -= appleNum;
saleMoney += money;
}
public void showSaleResult() {
System.out.println("*** 과일 장수의 현재 현황 ***");
System.out.println("남은 사과 : " + numOfApples);
System.out.println("판매 수익 : " + saleMoney);
}
}
package ex02.classobj.fruit05;
public class FruitBuyer {
int myMoney = 5000; // 보유금액
int numOfApples = 0; // 사과개수
public void buyApple(int appleNum, int money) {
numOfApples += appleNum;
myMoney -= money;
}
public void showBuyResult() {
System.out.println("*** 과일 구매자의 현재 현황 ***");
System.out.println("현재 잔액 : " + myMoney);
System.out.println("사과 개수 : " + numOfApples);
}
}
Author And Source
이 문제에 관하여(클래스의 상호작용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jinkyung/클래스의-상호작용저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)