Day3- 조별발표

박경희·2023년 5월 25일
0

강의 복습 및 정리

목록 보기
7/28

객체지향 수업을 들은 후 다음 날 있을 조별과제 주제를 객체지향 복습겸
제대로 이해하고 넘어가기 위해 새로운 주제를 정해 만들어보기로 했다.

* 수업시간에 스타크래프트 캐릭터를 만든것을 응용하여 자동차를 만들기로 했다.

(코드를 만들며 이해했던 부분을 되짚어 보며 기억하기 위해 작성했던 순서대로 기록하겠다.)

abstract public class Car {
    String color;
    int maxSpeed;
    boolean power;

    public void changePower(){
        power = !power;
    }
    public String go(){
        if(power){
            return "앞으로 갑니다.";
        }else {
            return "시동을 먼저 켜주세요";
        }
    }
   
}

  • 먼저 'Car'클래스를 만들어서 자동차에 공통로 들어가는 부분인 색깔, 속도, 전원(켜짐/꺼짐)을 만들어 주었다.
    ->color는 문자열로 받을거기 때문에 String으로, 속도는 숫자로 받은거니 int로, 전원은
    켜졌는지 꺼졌는지만 표시할 것이기 때문에 boolean을 사용하였다. (true, false만 있어도 되기 떄문에.)
  • 두번째로는 changePower(){ power = !power; } 를 만들어서 시동이
    켜졌을때는 true가 아닐땐 false가 나오도록 하고 if를 사용하여 power(true)일 때는 "앞으로 갑니다."가 리턴 되도록, false일 때는 "시동을 먼저 켜주세요"를 출력하도록 설정했다.
  1. 전기차 만들기

    public class Electric extends Car {
      int battery;
      public String charge(int amount){
          battery += amount;
          return "충전을 완료했습니다.";
      }
    
      @Override
      public String sound() {
          return "위이이이잉";
      }
      public Electric(int battery){
          super(Color.BLUE,250, false);
          this.battery = battery;
      }
    
      @Override
      public String toString() {
          return "Electric{" +
                  "battery=" + battery +
                  ", color='" + color + '\'' +
                  ", maxSpeed=" + maxSpeed +
                  ", power=" + power +
                  '}';
      }
    }
  • 그 다음 전기 자동차를 만들기 위해 Electric클래스를 만들었다. 이 전기 자동차에 Car클래스에서 만든 색깔, 속도, 전원을 모두 사용할 수 있게 하기 위해 extends Car를 사용해서 상속을 받았다.

  • 전기차는 배터리를 충전하여 사용하기 때문에 aomunt를 사용하여 충전이 완료 되었을 때 충전을 하고 "충전을 완료했습니다"를 리턴해 주도록 했다.

  • (부모에게)상속받은 메서드를 전기차(자신)에 맞게 변경하여 사용하기 위해
    Override를 사용했다. 이렇게 하면 덮어쓰기를 하여 변경할 수 있게된다.

  1. 가솔린차 만들기
public class Oil extends Car{

    int gasoline;

    public String gasolineUp(int amount){
        gasoline += amount;
        return "주유를 완료했습니다.";
    }

    @Override
    public String sound() {
        return "부아앙";
    }
    public Oil(int gasoline){
        super(Color.RED, 150, false);
        this.gasoline = gasoline;
    }

    @Override
    public String toString() {
        return "Oil{" +
                "gasoline=" + gasoline +
                ", color='" + color + '\'' +
                ", maxSpeed=" + maxSpeed +
                ", power=" + power +
                '}';
    }
}
  • 전기차와 같은 방법으로 만들었다.
  1. enum사용
public enum Color {
    RED, BLUE, GREEN
}
  • 처음에는 String으로 color를 만들었는데 enum을 만들어 색을 넣어주고
    Color.을 사용하여 색을 넣었다. 작성하면서는 이해가 갔는데 다시 혼자 생각해보려고
    정확하게 이해하지 못하고 있는 듯 하여 좀 더 공부가 필요하다고 느끼는 부분이다.
  1. 메인
public class Main {
    public static void main(String[] args) {
        Electric tesla = new Electric(200);

        Oil sonata = new Oil(300);

        System.out.println(tesla.toString());
        System.out.println(sonata.toString());
    }
}
  1. 출력
  • 이렇게 전기차와 오일차를 만들어 보았다.

수업을 들으며 이해가지 않았던 부분이 많이 있었는데 조별발표를 통해 많이 이해할 수 있었다.
내가 코드를 치기로 했는데 어떤 차를 만들지 구성한 후 코드로 작성하기 위해 키보드에 손을 올렸는데 막상 코드를 생성하려고 하니 막막한 느낌이 들었다.
다행이도 친절한 조원들이 무엇을 할 건지 떠올릴 수 있게 잘 이끌어 주었고 그 사이 사이에도
'무엇을 만들건지' ,'무엇을 사용해야 하는지', '왜 사용하는지', '의미 등을 자세히 설명해 주어서 강의 시간에 이해하지 못했던 부분까지 모두 이해할 수 있었다.
발표를 위한 발표가 아닌 복습 위주로 준비를 하자는 의견이 모두 맞아 주제 선정부터 준비과정까지 모두 재미있게 할 수 있어서도 좋았고 처음에는 원래 생각이 나지 않는게 맞는거라며 어려워하는 내가 당연하다는 말도 위로가 되고 용기를 얻을 수 있게 되어서 좋았다!

0개의 댓글