본문 바로가기

개인 공부/하루 공부

3/21 공부

* 7) 클래스태양12

 

- 문제 1

// 알게된거
// new 객체는 class를 따로 만들어주어야함. (메소드와 구분하기)
// 변수(int String double) , 메소드(void ~ ) 차이 알기
    // search (String one) 파라미터 한개 / search (String one, String two) 파라미터 두개
    // this. : 현재 객채를 참조하기 위한 용도
    // this() : 다른 생성자를 호출하는 용도
    // super. : 상속을 통한 해당 자식믈래스의 부모 객체를 가리키는 참조 변수 (자식클래스 내에서 부모 클래스 객체에 접근하여, 필드나 메소드 호출시 사용)
    // super() : 부모생성자 호출. 부모 생성자 호출은 super(매개변수,매개변수) 넣으면됨
    // super : 상속받은 메소드나 변수를 호출 | this : 동일한 이름의 변수가 사용될경우, 클래스 영역에서 정의한 변수를 식별하기위해 사용

    // 오버라이딩 : 상속 받은것을 메소드를 재작성 하는것
    // 오버로딩 : 같은 이름의 메소드를 여러개 정의





        HamBurger[] hamBurgers = new HamBurger[3]; // hamBurgers에 3자리 수를 만듦
        hamBurgers[0] = new HamBurger();
        hamBurgers[1] = new CheeseBurger();
        hamBurgers[2] = new ShrimpBurger();

        System.out.println("주문하신 메뉴를 만듭니다.");
        System.out.println("-------------");

        for (HamBurger hamBurger : hamBurgers) {
            hamBurger.cook();
            System.out.println("-------------");
        }
        System.out.println("메뉴 준비가 완료되었습니다.");
    }
}




class HamBurger { // 각각의 클래스 생성
    public String name; // 버거이름을 담기위한 name 변수 정의

    public HamBurger() {
        this ("햄버거");
    }

    public HamBurger (String name) {
        this.name = name; //  name 객채를 참조하기위한 용도
    }

    public void cook() { // 재료 정보를 표시하는 cook 메소드 정의
        System.out.println(this.name + "를 만듭니다.");
        System.out.println("빵 사이에 들어가는 재료는?");
        System.out.println("> 양상추");
        System.out.println("+ 패티");
        System.out.println("+ 피클");

    }
}



class CheeseBurger extends HamBurger { // HamBurger 클래스 extends(상속) >> name 변수 필요X

    public CheeseBurger(){
        super("치즈버거"); // 부모클래스에 있는 생성자에,name정보를 받아 값을 업데이트해줌
    }


    public void cook() { // 재료 정보를 표시하는 cook메소드 정의
        super.cook(); // 부모클래스인 햄버거 cook을 가져옴
        System.out.println("+ 치즈");
    }
}



class ShrimpBurger extends HamBurger { // HamBurger 클래스 extends(상속) >> name 변수 필요X

    public ShrimpBurger() {
        super("새우버거"); // 부모클래스에 있는 생성자에,name정보를 받아 값을 업데이트해줌
    }

    
    public void cook() { // 재료 정보를 표시하는 cook메소드 정의
        super.cook();
        System.out.println("+ 새우");
    }
}

        주문하신 메뉴를 만듭니다.
        ---------------
        햄버거를 만듭니다.
        빵 사이에 들어가는 재료는?
        > 양상추
        + 패티
        + 피클
        ---------------
        치즈버거를 만듭니다.
        빵 사이에 들어가는 재료는?
        > 양상추
        + 패티
        + 피클
        + 치즈
        ---------------
        새우버거를 만듭니다.
        빵 사이에 들어가는 재료는?
        > 양상추
        + 패티
        + 피클
        + 새우
        ---------------
        메뉴 준비가 완료 되었습니다.

 

 

- 문제2 

    public static void main(String[] args) {
        HamPizza[] pizzas = new HamPizza[3];
        pizzas[0] = new HamPizza();
        pizzas[1] = new CheesePizza();
        pizzas[2] = new ShirmpPizza();

        System.out.println("주문하신 메뉴를 만듭니다.");
        System.out.println("---------------");

        for (HamPizza pizza : pizzas) {
            pizza.cooking();
            System.out.println("---------------");
        }
        System.out.println("메뉴 준비가 완료 되었습니다.");
    }
}



class HamPizza {
    public String name;

    public HamPizza() {
        this("햄피자");
    }

    public HamPizza (String name) {
        this.name = name;
    }

    public  void cooking() {
        System.out.println(this.name + " 를 만듭니다");
        System.out.println("도우 위에 들어갈 재료는?");

        System.out.println("+ 올리브");
        System.out.println("+ 토마토 케챱");
        System.out.println("+ 치즈");
    }
}


class CheesePizza extends HamPizza {
    public CheesePizza() {
        super("치즈피자");
    }

    public void cooking() {
        super.cooking();
        System.out.println("+ 치즈");
    }
}


class ShirmpPizza extends HamPizza {
    public ShirmpPizza() {
        super("새우피자");
    }

    public void cooking() {
        super.cooking();
        System.out.println("+ 새우");
    }
}

        주문하신 메뉴를 만듭니다.
        ---------------
        햄피자 를 만듭니다
        도우 위에 들어갈 재료는?
        + 올리브
        + 토마토 케챱
        + 치즈
        ---------------
        치즈피자 를 만듭니다
        도우 위에 들어갈 재료는?
        + 올리브
        + 토마토 케챱
        + 치즈
        + 치즈
        ---------------
        새우피자 를 만듭니다
        도우 위에 들어갈 재료는?
        + 올리브
        + 토마토 케챱
        + 치즈
        + 새우
        ---------------
        메뉴 준비가 완료 되었습니다.

 

 

* 9 )

Array list

// 컬렉션 프레임워크 (List, Set, Map)
ArrayList<String> list = new ArrayList<>();

// 데이터 추가
list.add("햄피자");
list.add("치즈피자");
list.add("새우피자");
list.add("고구마피자");
list.add("불고기피자");

// 데이터 조회 (인덱스)
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));
System.out.println(list.get(3));
System.out.println(list.get(4));

햄피자
치즈피자
새우피자
고구마피자
불고기피자



    // 삭제 (고구마 피자 주문취소)
    System.out.println("피자 시킨 갯수 (주문 취소 전) : " + list.size());
    list.remove("고구마피자");
    System.out.println("피자 시킨 갯수 (주문 취소 후) : " + list.size());

    System.out.println(list.get(3)) // 데이터 3에있는거 불러옴

    피자 시킨 갯수 (주문 취소 전) : 5
    피자 시킨 갯수 (주문 취소 후) : 4
    불고기 피자
    
    
        System.out.println("남은 피자 주문수 (취소 전) : " + list.size()) // 4
        list.remove(list.size() - 1);
        System.out.println("남은 피자 주문수 (취소 후) : " + list.size()) // 3

        남은 피자 주문수 (취소 전) : 4
        남은 피자 주문수 (취소 후) : 3

 

'개인 공부 > 하루 공부' 카테고리의 다른 글

3/23 , 3/24  (0) 2023.03.25
3/22  (0) 2023.03.22
3/19  (0) 2023.03.19
3/18 공부  (0) 2023.03.19
3/17 공부  (0) 2023.03.18