JAVA SPRING/java

JAVA_006) 객체지향개념_3 개념적인 메소드 설계&실행2

오동순이 2023. 3. 16. 14:46

* 잊어먹지 말기!

기본적인 개념 반복학습
setter(ex수정 값을 바꿀 수 있음)메서드와 getter(ex조회 값을 바꿀 수 없음)메서드
getter, setter 은 데이터를 보호하기 위해 사용한다. => Entity(데이터)에 직접접근을 방지

클래스의 상속 => 포함 관계 (엄밀히 얘기하면 클래스의 상속이랑 달라요)헤즈어관계(포함관계) -> 변수로 사용됨클래스의 상속은 다형성이되야뎀티비UserInfo 랑 리모콘u1u1.id = "u001"; 리모콘의 id 누름

리턴 타입 결정! 티비설계도 void return X ,나머지 String int return O
public String toString() <- 주소값0xacd 말고 글자로 출력됨 

생성자가 뭐예요?

참고블로그 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=yun4794&logNo=221110665473 

 

[java]자바 강의 25. "생성자"란 무엇인가?

생성자란?우리는 프로그램을 만들 때 변수를 선언하고 반드시 초기화를 해주어야 한다고 알고있다. 만...

blog.naver.com


데이터 정규화과정을 거쳐서 메소드& 기능을 설계해야 한다.

예시) 순서대로 진행하기!

1. 정보나누기
2. 변수생성(길어도 항상 명확하게 적어주세요)
3. 세분화 들어가기 ----기본정보/상세사항/사업자정보
    3-1 클래스 새로 만들어서 옮겨놓기 StoreInfo 는 빈상태로 만들기 -> StoreBasicInfo store_basic;
    3-2 void 메서드 만들기 StoreBasicInfo
            public String toString() 만들기 -기본정보 출력용-
            변수 아래에 기본생성자 만들기 public StoreBasicInfo(변수이름){메서드}
    3-3 출력해서 확인
4 새로운 클래스 생성 StoreDetailInfo <들어가는 DeliveryBoundary 생성
5 새로운 클래스 생성 StoreBusinessInfo

정규화를 간단하게 한 후 시작

{가게정보]
가게 이미지(썸네일)
가게 이름 <<다름(배민에서보여지는이름)
별점
최소주문금액
결제방법
배달시간(최소, 최대)
배달팁(최소, 최대)
----------------------기본정보StoreBasicInfo
가게소개

영업정보) - 상호명 <<
운영시간(개점 폐점)
휴무일(월~일)
전화번호
배달가능지역
안내사항
주문금액 별 배달팁
------------------------상세사항StoreDetailInfo
사업자정보)-대표자명
상호명 <<
사업자주소
사업자등록번호
-----------------------사업자정보StoreBusinessInfo

 

위의 정보를 바탕으로 아래와 같이 큰 틀이 설계된다.

## 1. Main ! <-사용자
public class StoreMain {
  public static void main(String[] args) {


2. Class <-은닉기능 BasicInfo << 한방에 처리할수있게 (나머지 클래스 생성후
---public class StoreBasicInfo {

>>public class StoreMain {
  public static void main(String[] args) {
---StoreInfo store = new StoreInfo();
    
    2-1 배열 - 클래스 생성 <-쉽게 뽑아내려고
public class DeliveryBoundary {

 Main ! <-사용자
    DeliveryBoundary[] boundaries = {
      new DeliveryBoundary(50000, 2000),
      new DeliveryBoundary(16000, 3000)
    };

3.  Class <-은닉기능
public class StoreDetailInfo {

 Main ! <-사용자
    StoreDetailInfo detailInfo = new StoreDetailInfo(

4. Class <-은닉기능
public class StoreBusinessInfo {

 Main ! <-사용자
    StoreBusinessInfo businessInfo = new StoreBusinessInfo(


5. StoreInfo 정리 (한방에 나오기 위해)

public class StoreInfo {
  StoreBasicInfo store_basic;
  StoreDetailInfo store_detail;
  StoreBusinessInfo store_business;
  
  public StoreInfo(StoreBasicInfo basic, StoreDetailInfo detail, StoreBusinessInfo business) {
    store_basic = basic;
    store_detail = detail;
    store_business = business;
  }

  public String toString() {
    String str = "";
    str += store_basic.toString();
    str += store_detail.toString();
    str += store_business.toString();
    return str;
  }
}

6.  Main ! <-사용자가 입력만 하면 되도록

public class StoreMaincopy{
  public static void main(String[] args) {         //Last버전 StoreInfo 에 public StoreInfo 생성하고 store. 다없앤버젼
    String[] payments = {"바로 결제", "만나서 결제"};
    StoreBasicInfo basicInfo = new StoreBasicInfo(
      "store.jpg", "교촌치킨 송현점", 3.9, 16000,
      payments, 38, 53, 2000, 3000
      );

    DeliveryBoundary[] boundaries = {
      new DeliveryBoundary(50000, 2000),
      new DeliveryBoundary(16000, 3000)
    };
    StoreDetailInfo detailInfo = new StoreDetailInfo(
      "바쁘면 오래 거림, 따뜻한 치킨 배달하겠음",
      "교촌치킨 송현1호점", "12:30", "23:35", null, "050-6115-1090", "송현1동 송현2동 본동일부 상인동 대명동",
      "포장은 접수번호를 말하세요, 귀찮으면 전번 알려주세요", boundaries
    );
  
    StoreBusinessInfo businessInfo = new StoreBusinessInfo(
      "노경곤", "교촌치킨 송현1호점", "대구광역시 달서구 송현동 207-2", "514-25-55195"
      );

    StoreInfo store = new StoreInfo(basicInfo, detailInfo, businessInfo);
    System.out.println(store);

  }
}