코딩과 결혼합니다

230624 - 생성자에 대한 복습(JAVA 문법 종합반 3주차) 본문

2세/Java

230624 - 생성자에 대한 복습(JAVA 문법 종합반 3주차)

코딩러버 2023. 6. 24. 23:23
728x90

🔹 느낀점

어제 항해 매니저님께서 생성자에 대해 아냐고 물어보셨다.
"음... 애매하지만 어렴풋하게는 알 것 같아요"
그랬더니 "그럼 테스트를 해보겠습니다. ^^ IIntelliJ를 켜보세요."
그리고 나는 대답했다. "아,,!!! 아뇨!! 모르는것 같아요!!  확실히 모르는 것 같습니다. 모릅니다!!"
그렇게 매니저님의 명강의가 시작되고 이 부분을 정확히 알고 넘어가야 함을 절실하게 깨달았다. 

 


 

🔹 오늘 공부한 것

👀 오늘 배운것을 토대로 문제를 하나 풀어보았다. 👀

 

//1. TV 라는 이름의 Class 만들기
//2. 인스턴스 변수 color, power, channel, price 생성
//3. power : OFF, channel : 10 으로 초기화 (ON : true / OFF : false)
//4. color, price 초기화하는 생성자
//5. channel 상태를 확인하는 메서드
//6. power 상태를 확인하는 메서드
//7. channel 를 UP 하는 메서드
//8. channel 를 DOWN 하는 메서드
//9. power 를 ON (true) 하는 메서드
//10. power 를 OFF (false) 하는 메서드

놀랍게도 어제 까지만해도 4번부터 막혔을텐데(자랑아님🤷‍♀)  Spring 배우기도 벅찬 지금 다른 부분을 다시 복습하려니

마음이 급해서 빡집중 했더니 10번까지 내 스스로 코드를 칠 수 있게 되었다. 


 

코드를 작성하며...

4번째 초기화 하는 생성자에서 막혔는데 기본 생성자 밖에 머릿속에 떠오르지 않았던 나는 다시 강의자료를 보며 코드를 고쳐나갔다.

    public color(String color){
        this.color = color;
    }

클래스명을 불러와야 하는데 위의 코드처럼 인스턴스 변수명을 불러오는 나...제법 귀여워요 빨간 줄은 늘 나를 벌벌 떨게한다. 난 영어를 해석하고 싶지 않다궁! 하지만 고마워요 인텔리제이 

 

    public TV(String color){
        this.color = color;
    }
    public TV(double price){
        this.price = price;
    }

"움.. TV 생성자를 두 개 만들어도 되나..." 하며 쓸데 없는 고민 속에서 굳이 두 개로 나누어 만든 다음 Main에서 잘 만들었는지 확인할때 또 해맨 나.. 제법 깜찍해요

 

    int checkChannel(){
        channel = check;
        return channel;
    }
    
      int checkChannel(int channel){

    }

부끄럽지만 이런 괴랄한 코드도 적어봤다. 이 부분에 대한 개념이 얼마나 없었는지 다시금 느껴본다. 배우고자 하는 마음이 중요한거지! 

아직은 input으로 무엇을 가져와야 하는지 output으로는 무엇을 내보내야 하는지 헷갈리지만(이 문제에서는 별 고민할 부분이 없는데도 말이다.) 평정심을 되찾고 명상 3분 때린후에 마음을 평안하게 하고 다시 생각해보면 해결할 수 있는 문제인듯!

 

 

우여곡절 끝에 완성!

Class TV

package week03.실습;
//1. TV 라는 이름의 Class 만들기
public class TV {
    //2. 인스턴스 변수 color, power, channel, price 생성
    //3. power : OFF, channel : 10 으로 초기화 (ON : true / OFF : false)
    String color;
    boolean power = false; //OFF
    int channel = 10;
    double price;

    //4. color, price 초기화하는 생성자
    public TV(String color, double price) {
        this.color = color;
        this.price = price;
        System.out.println("TV 객체가 생성되었습니다.");
    }


    //5. channel 상태를 확인하는 메서드
    int checkChannel(){
      return channel;
    };

    //6. power 상태를 확인하는 메서드
    boolean checkPower(){
        return power;
    };

    //7. channel 를 UP 하는 메서드
    int channelUp(){
        channel += 1;
        return channel;
    }

    //8. channel 를 DOWN 하는 메서드
    int channelDown(){
        channel -= 1;
        return channel;
    }

    //9. power 를 ON (true) 하는 메서드
    boolean powerOn(){
        return true;
    };


    //10. power 를 OFF (false) 하는 메서드
    boolean powerOff(){
        return false;
    };
}

Main

package week03.실습;

public class Main {
    public static void main(String[] args) {
        TV tv = new TV("white",50000);
        System.out.println(tv.checkChannel());
        System.out.println(tv.checkPower());

        System.out.println();

        System.out.println(tv.channelUp());
        System.out.println(tv.checkChannel());

        System.out.println();

        System.out.println(tv.channelDown());
        System.out.println(tv.channelDown());
        System.out.println(tv.checkChannel());

        System.out.println();

        System.out.println(tv.powerOn());
        System.out.println(tv.powerOff());
    }
}

결과는 원하는 대로 나오지만 매니저님께 컨펌 한 번 받아봐도 괜찮겠다. 월요일날에 생성자 테스트 하신다는데 칭찬받았으면 좋겠다.🔥"아니.. 어쩜 1+1도 모르는 수준이셨는데 이제 2+2정도는 하실 수 있겠어요!"