//extends는 하나만 가능
public class Sub extends Super implements Serializable, Cloneable{}
public interface Sub extends Serializable, Cloneable{}
public class Restaurant extends Delibary {}
//포장 주문의 필요성이 생겼지만 한 class 밖에 상속 불가
public class Restaurant implements Delibariable, Packable{}
//interface default method
public interface Packable{
dafualt void packOrder(){
System.out.println("포장 주문이 들어왔습니다.");
}
}
클래스 내부에서 사용하는 상수는 내부 구현에 해당된다.
오히려 사용자에게 혼란을 줄 수 있다.
차라리 클래스에 static final로 추가하는 것이 더 낫다.
public class OrderService{
public static final double SECOND_TO_MIN = 60;
}
//만약 여러 곳에서 사용해야할 값이란 util class
pulbic class TimeConvertUtil{
public static final double SECOND_TO_MIN = 60;
public static double secondToMin(double second){
return second / SECOND_TO_MIN;
}
}
Nested 되어 있는 member class가 독립적으로 존재할 수 없으며 바깥 instance 없이는 생성할 수 없어야 함
@Data
public class User{
private String name;
private Address address;
@Data
public class Address{
String zipcode;
}
public String getUserName(){
//의미가 있는 메서드는 아님
//접근 범위 설명 위해 추가
return nmae
}
}
///
User user = new User();
user.new Address();
Nested 되어 있는 member class가 독립적으로 존재할 수 있음
public class Customer{
private int age;
private Address address;
public String printBarCode(){
return address.fullAddress + address.zipcode;
}
private static class Address{
private String fullAddress;
private String zipcode;
}
}
Method 밖에서 사용할 것이다 - member class
그 중 member class가 바깥 instance를 참고한다 -> not-stati 그 외 -> static
딱 한 곳에서 사용하거나 사전 struct가 있다 -> Anonymous class or local class