<aside> 💡 과정 목표
</aside>
interface Shape {
void printInfo();
double getArea();
}
class Circle implements Shape {
private int radius;
Circle(int radius) {
this.radius = radius;
}
@Override
public void printInfo() {
System.out.println("radius : " + radius);
}
@Override
public double getArea() {
return Math.PI * Math.pow(radius, 2);
}
}
public class ShapeTest {
public static void main(String[] args) {
Shape shape = new Circle(10);
double area = shape.getArea();
System.out.println(area);
}
}
main
메서드에서 자신을 구현한 클래스 Circle
의 인스턴스를 참조할 수 있는 타입의 역할로 Shape
이 사용되고 있는 것을 확인할 수 있습니다.public interface PhysicalConstants {
static final double AVOGADROS_NUMBER = 6.022_140_857e23;
static final double BOLTZMANN_CONSTANT = 1.380_648_52e-23;
...
}
PhysicalConstatns
가 com.physics
에 위치한다면 위 인터페이스의 정규화된 이름은 com.physics.PhysicalConstant
가 될 것입니다.package item18;
public class ConstantInterfaceExample{
public static void main(String[] args) {
double number = item22.PhysicalConstants.AVOGADROS_NUMBER;
double boltzmann = item22.PhysicalConstants.BOLTZMANN_CONSTANT;
}
}
PhysicalConstant
인터페이스가 item22
패키지에 존재하고, item18
패키지에서 이 상수 인터페이스를 사용하기 위해서는 기본적으로 위와 같이 정규화된 이름을 사용합니다.package item18;
import item22.PhysicalConstants;
public class InheritanceExample implements PhysicalConstants {
public static void main(String[] args) {
double number = AVOGADROS_NUMBER;
double boltzmann = BOLTZMANN_CONSTANT;
}
}