everyday com-eat
작성일
2021. 12. 12. 22:28
작성자
갱수터
728x90

5. 하나의 패키지내에서 서로다른 클래스내에서 리턴없고 입력없는 메서드 선언 및 호출

클래스
A5.java
B5.java
코드
package apr15th
public class A5 {
 public static void main(String[] args) {
  B5 bb = new B5();
  bb.a();
 }
}
package apr15th
public class B5 {
 // 리턴없고 입력없는 메서드 선언
 public void a() {
  System.out.println("a 메서드 실행");
}
콘솔창
a 메서드 실행

6. 하나의 패키지내에서 서로다른 클래스내에서 리턴없고 입력있는 메서드 선언 및 호출

문제
권한이 "판매자"이면 상품을 등록하고
TotalPrint 클래스내 상품출력 메서드를 호출해서 콘솔창에 출력
그렇지 않으면 "판매자 권한이 없어요. 상품등록불가!"
(User,Goods,TotalPrint 클래스 주어짐)
클래스
A6.java
B6.java
코드
package apr15th
public class A6 {
 public static void main(String[] args) {
  User sugyeong = new User();
  B6 lc = new B6();
  sugyeong.setUid("apr15th");
  sugyeong.setUpw("pw0000");
  sugyeong.setUphone("010-0000");
  sugyeong.setUgender('여');
  sugyeong.setUage(24);
  sugyeong.setUlevel("판매자");
  lc.levelCheck(sugyeong);
 }
}
package apr15th
public class B6 {
 //리턴없고 입력있는 메서드 선언
 public void levelCheck(User u) {
  if(u.getUlevel() == "판매자") { //상품등록
   Goods g01 = new Goods();
   g01.setPcode("p001");
   g01.setPhalin(1000000);
   g01.setPjungsang(2000000);
   g01.setPname("노트북");
   g01.setPsangse("SW개발용");
   g01.setUid("id002");
   TotalPrint tp = new TotalPrint();
   tp.gPrint(g01);
  }else {
   System.out.println("판매자 권한이 없어요. 상품등록 불가!");
  }
}
콘솔창
-- 상품 상세 정보 --
상품코드: p001
판매자id: id002
상품명: 노트북
정상가: 2000000
할인가: 1000000
상품상세설명: SW개발용
-- 상품 상세 정보 End --

7. 하나의 패키지내에서 서로다른 클래스내에서 리턴있고 입력없는 메서드 선언 및 호출

문제
B7 클래스에 리턴있고 입력없는 메서드를 선언하고
A7 클래스에 그 메서드를 호출해
회원가입한 회원의 권한이 "구매자"라면 주문상세정보를 출력하고 "판매자"라면 상품정보를 출력해라
(User,Goods,TotalPrint 클래스 주어짐)
클래스
A7.java
B7.java
코드
package apr15th;
public class A7 {
 public static void main(String[] args) {
  B7 bb = new B7();
  User au = bb.test1();
  Goods ag = bb.test2();
  Order ao = bb.test3();
  au.setUid("id001");
  au.setUage(20);
  au.setUgender('여');
  au.setUphone("010-0000");
  au.setUpw("pw001");
  au.setUlevel("구매자");
  TotalPrint tp = new TotalPrint();
  if(au.getUlevel() == "구매자") {
   ao.setOaddress("금암동");
   ao.setOcode("o001");
   ao.setOcount(10);
   ao.setOprice(10000);
   ao.setOtotal(ao.getOcount() * ao.getOprice());
   ao.setPcode("p002");
   ao.setUid(au.getUid());
   tp.oPrint(ao);
  }else if(au.getUlevel() == "판매자"){
   ag.setPcode("p001");
   ag.setUid(au.getUid());
   ag.setPname("노트북");
   ag.setPjungsang(2000000);
   ag.setPhalin(1000000);
   ag.setPsangse("SW개발용");
   tp.gPrint(ag);
  }else {
   System.out.println("로그인 정보를 확인하세요.");
  }
 }
}
package apr15th;
public class B7 {
 User test1() {
  User u = new User();
  return u;
 }
 Goods test2() {
  Goods g = new Goods();
  return g;
 }
 Order test3() {
  Order o = new Order();
  return o;
 }
}
콘솔창
-- 상품 상세 정보 --
상품코드: p001
판매자id: id001
상품명: 노트북
정상가: 2000000
할인가: 1000000
상품상세설명: SW개발용
-- 상품 상세 정보 End --

 

8. 하나의 패키지내에서 서로다른 클래스내에서 리턴있고 입력있는 메서드 선언 및 호출

문제
회원을 두명 받아서 권한이 "판매자"이면 상품을 등록하고, "주문자"이면 상품을 주문한다.
TotalPrint 클래스내 주문출력 메서드를 호출해서 콘솔창에 출력
그렇지 않으면 "상품등록이 불가합니다" 출력
(User,Goods,TotalPrint 클래스 주어짐)
클래스
A8.java
B8.java
코드
package apr15th;
public class A8 {
 public static void main(String[] args) {
  User u01 = new User();
  B8 b = new BB04();
  Goods g01 = new Goods();
  TotalPrint tp = new TotalPrint();
  u01.setUid("id001");
  u01.setUage(20);
  u01.setUgender('여');
  u01.setUphone("010-0000");
  u01.setUpw("pw001");
  u01.setUlevel("판매자");
  if(u01.getUlevel() == "판매자") {
   g01.setPcode("p001");
   g01.setUid(u01.getUid());
   g01.setPname("노트북");
   g01.setPjungsang(2000000);
   g01.setPhalin(1000000);
   g01.setPsangse("SW개발용");
   Order re = b.test(u01, g01);
   if(re.getError() == null) {
    tp.oPrint(re);
   }else {
    tp.ePrint(re);
   }
  }else {
   System.out.println("상품등록이 불가합니다.");
  }
 }
}
package apr15th;
public class B8 {
 Order test(User u, Goods g) {
  User u02 = new User();
  Order re = new Order();
  u02.setUid("id002");
  u02.setUpw("pw002");
  u02.setUphone("010-0002");
  u02.setUgender('여');
  u02.setUage(30);
  u02.setUlevel("구매자");
  if(u02.getUlevel() == "구매자") {
   re.setOcode("o001");
   re.setPcode(g.getPcode());
   re.setUid(u02.getUid());
   re.setOcount(3);
   re.setOprice(g.getPjungsang());
   re.setOtotal(re.getOcount() * re.getOprice());
   re.setOaddress("금암동");
  }else {
   re.setError("주문 내역이 없습니다.");
  }
  return re;
 }
}
콘솔창
-- 주문 상세 정보 --
주문코드: o001
상품코드: p001
주문자id: id002
주문수량: 3
주문단가: 2000000
주문합계: 6000000
받는주소: 금암동
-- 주문 상세 정보 End --
문제해결방식
나는 Order 클래스에 error라는 String 변수를 새로 만들고
TotalPrint 클래스에 ePrint()라는 error변수를 출력하는 메서드를 새로 만들어서
회원2의 권한이 구매자가 아닐때 error에 "주문 내역이 없습니다"라는 문자열을 대입했다.
if문으로 error에 값이 없다면 oPrint()메서드가 실행되고, 그게 아니라면 ePrint가 출력되게 했다.
따라서
회원1-판매자, 회원2- 구매자 = 주문상세정보 출력
회원1-판매자, 회원2- 판매자 = 주문 내역이 없습니다.
회원1-구매자, 회원2- 판매자 or 구매자 = 상품등록이 불가합니다.
가 출력되게 된다.

728x90