내일배움캠프 24일차 개발일지 + Java 기초문법

2021. 10. 23. 02:59스파르타코딩클럽

# TIL

 

intellij 사용중

자바 코드에서 window의 경우 alt + insert키를 누르면 생성자 등등 여러가지를 자동으로 만들 수 있다.


생성자는 클래스의 이름과 동일하여야 한다

자바 상속
형식 상속은 오직 하나의 클래스만 받을 수 있다.
class Animal{}
class Dog extends Animal{}
class Cat extends Animal{}​

오버로딩

한 클래스 내에 동일한 이름의 메소드를 여러개 정의하는 것
조건 메소드
이름이 동일 매개변수의 개수 혹은 타입이 달라야 함
int add(int x, int y, int z) {
    int result = x + y + z;
    return result;
}

long add(int a, int b, long c) {
    long result = a + b + c;
    return result;
}

int add(int a, int b) {
    int result = a + b;
    return result;
}​


오버라이딩
부모 클래스로부터 상속받은 메소드의 내용을 변경
class Animal {
    String name;
    String color;

    public void cry() {
        System.out.println(name + " is crying.");
    }
}

class Dog extends Animal {

    Dog(String name) {
        this.name = name;
    }

    public void cry() {
        System.out.println(name + " is barking!");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog("코코");
        dog.cry();
    }
}​

 

출력값은 is crying 이 아닌 코코 is barking! 이 출력된다.


접근제어
private은 클래스내에서만
public 어디서나
protected는 상속받은 자식클래스를 통하여

인터페이스는 객체의 특정 행동의 특징을 정의하는 간단한 문법
인터페이스 형식
interface 인터페이스명{
      public abstract void 추상메서드명();
}

인터페이스 vs 추상클래스
- 인터페이스
1. 구현하려는 객체의 동작의 명세
2. 다중 상속 가능
3. implements를 이용하여 구현
4. 메소드 시그니처(이름, 파라미터, 리턴 타입)에 대한 선언만 가능

- 추상클래스
1. 클래스를 상속받아 이용 및 확장을 위함
2. 다중 상속 불가능 , 단일 상속
3. extends를 이용하여 구현
4. 추상메소드에 대한 구현 가능