* 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