내일배움캠프 21일차

Drumj·2022년 5월 17일
0

내일배움캠프

목록 보기
21/80

<오늘의 학습>

오늘은 자바 학습을 위주로 작성해야겠다.

조건문

if 조건문에서 elif 사용 불가. else if 로 사용해야함.

  • 삼항연산자
				String result = (a <10) ? "10보다 작습니다." : "10보다 큽니다.";

변수 a가 10보다 작냐? 물어봤을때 True 이면 "10보다 작습니다." False면 "10보다 큽니다."를 출력해준다. A? B: C; 가 중요!

반복문

while - 조건을 하나만 적어주고 {}안에 다른 조건을 적어준다
do {} while - do{}을 먼저 수행한 후에 while 반복문을 돈다.


객체지향언어

  • 클래스 Class
    붕어빵 틀 = 클래스 / 붕어빵 = 인스턴스
    class Phone {
    String model;
    String color;
    int price;
}

public class Main {
    public static void main(String[] args) {
        Phone galaxy = new Phone(); 
        galaxy.model = "Galaxy10";
        galaxy.color = "Black";
        galaxy.price = 100;
        
        Phone iphone =new Phone();
        iphone.model = "iPhoneX";
        iphone.color = "Black";
        iphone.price = 200;
        

        System.out.println("철수는 이번에 " + galaxy.model + galaxy.color + " + 색상을 " + galaxy.price + "만원에 샀다.");
        System.out.println("영희는 이번에 " + iphone.model + iphone.color + " + 색상을 " + iphone.price + "만원에 샀다.");
    }
}

위 코드에서 클래스는 Phone이고 인스터는 galaxy, iphone 이다.


  • 메소드 Method
    어떤 작업을 수행하는 코드를 하나로 묶어놓은 것
class Calculation{
    int add(int x, int y){
        return x+y;
    }
    int subtract(int x, int y){
        return x-y;
    }
}
public class Main {
    public static void main(String[] args) {

        Calculation calculation = new Calculation();
        int addResult = calculation.add(1, 2);
        int subtactResult = calculation.subtract(6, 4);

        System.out.println(addResult);
        System.out.println(subtactResult);
    }
}

위 코드에서 메소드는 아마 add,subtract 인 것 같다. 더하기 빼기를 수행하는 걸 하나로 묶은것...?
calculation 은 인스턴스다!! (소문자이다, 헷갈리면 안됨!)


  • 생성자
    메소드의 일종으로 인스턴스를 생성할 때 불리는 초기화 메소드.
    클래스 이름과 똑같은 이름으로 지어줘야한다.

    class Phone {
    String model;
    String color;
    int price;
    
    public Phone(String model, String color, int price) {
        this.model = model;
        this.color = color;
        this.price = price;
    			}
    }

    위 코드에서 public Phone 부분이 생성자(constructor)이고 윈도우에서 Alt + Insert 키로 자동 완성 시킬 수 있다! 맥에서는 커맨드 + N 이었..을...걸..?

    Phone galaxy = new Phone("갤럭시","검정색",100);

    생성자를 사용하면 이렇게 간단하게 코드를 만들 수 있다! 먼저 4줄의 코드만 작성해도 이 후에 4줄씩 안 적어도 되는 아주아주 편리한 기능인 듯!
    저 위에 적은 이 코드와 똑같은 것이다

    Phone galaxy = new Phone(); 
        galaxy.model = "Galaxy10";
        galaxy.color = "Black";
        galaxy.price = 100;

  • 상속

    class Animal {
        String name;
    
        public void cry(){
            System.out.println(name + "is crying");
        }
    }
    
    class Dog extends Animal{
        Dog(String name){
            this.name = name;
        }
        public void swim(){
            System.out.println(name + "is swimming");
        }
    }
    public class Main {
        public static void main(String[]args){
            Dog dog = new Dog("코코");
            dog.cry();
            dog.swim();
    
            Animal dog2 = new Dog("하하");
            dog2.cry();
            dog2.swim(); // 얘는 상속을 받지 못해서 사용할 수 없음
        }
    }

    Animal 이라는 부모 클래스를 만들고, Dog라는 클래스를 extends Animal이라고 선언해서
    자식 클래스로 만든다. 그러면 Animal에서 사용하던 cry()라는 함수를 Dog에서 만들지 않아도 사용할 수 있다!

    하지만 Animal dog2는 Dog클래스를 가져온게 아니라 Animal클래스를 가져왔기 때문에
    cry()는 사용할 수 있으나 swim()은 사용 할 수 없다!

    또.... 오버로딩과 오버라이딩이라는 것이 있는데... 오버라이딩은 이해를 하겠는데
    오버로딩은 뭐여?? 오버로딩이 좋다는 소리여 나쁘단 소리여...

    --오늘의 한 줄--

    빨간줄 뜨면 뭐가 잘 못 됐는지 확인해보자! 그게 젤 빠르다

2개의 댓글

comment-user-thumbnail
2022년 5월 18일

붕어빵틀ㅋㅋㅋ 적절한 비유네요 붕어빵 먹고 싶어졌어요 ㅎ

1개의 답글