CS/java
javac가 알아서 해주는 것
hanjongho
2021. 4. 30. 15:27
- void형 "return ;" 추가 : 반환 타입이 void이므로 생략이 가능하다. 컴파일 시 자동으로 마지막에 "return ;"을 붙여준다.
- 기본 생성자 추가 : 컴파일 시 .java의 클래스에 생성자가 단 한개도 없을 경우 기본 생성자를 추가해준다.
- Object클래스 상속 : 다른 클래스로부터 상속을 받지 않는 모든 클래스는 자동으로 "extends Object"를 추가한다. 이렇게 함으로써 모든 클래스들은 Object를 상속받게 된다. 다른 클래스로부터 상속을 받는다면, 그 다른 클래스 또한 결국 Object를 상속받고 있기 때문에 최상위 클래스는 Object가 된다.
- 부모 클래스의 생성자 호출 : 자식 클래스에서 부모 클래스의 멤버를 사용할수도 있기 때문에 먼저 초기화가 되어 있어야한다. 그렇기 때문에 상속관계에 따라 올라가면서 최상위 클래스인 Object클래스의 생성자까지 호출이 된다. Object 클래스를 제외한 모든 클래스 생성자 첫줄에 super();가 추가 된다.
- 접근제어자 자동 추가 : 인터페이스 작성 시 멤버변수는 public static final , 메서드는 public abstract이 생략되어 있는 경우 추가해준다.
- 람다식 타입 임의지정 : 람다식은 익명 객체이기 때문에 대입 연산자에 있어서 양변의 타입을 맞추기 위해 형변환(함수형 인터페이스로만)을 진행한다. (MyFunction f = (MyFunction) (() -> {});)