JAVA 인터페이스 개념과 활용
JAVA에서 인터페이스(Interface)는 클래스와 비슷한 개념으로, 추상 메소드와 상수(constant)만을 포함할 수 있습니다. 인터페이스는 클래스와 달리 인스턴스를 생성할 수 없습니다. 대신, 인터페이스를 구현(implement)하는 클래스에서 인터페이스의 추상 메소드를 구현하여 사용합니다. 이를 통해 여러 클래스가 공통으로 사용할 수 있는 기능을 정의하고, 코드의 재사용성을 높일 수 있습니다.
JAVA에서의 생성자와 소멸자
JAVA에서의 생성자와 소멸자 객체 지향 프로그래밍에서 클래스는 객체를 생성하기 위한 청사진(blueprint)이며, 객체는 클래스를 기반으로 생성된 인스턴스입니다. JAVA에서는 클래스를 정의할 때
gruda.tistory.com
Java에서 상속과 다형성의 이해
Java에서 상속과 다형성의 이해 Java는 객체 지향 프로그래밍 언어 중 하나로, 객체 지향 프로그래밍의 핵심 개념인 상속과 다형성을 지원합니다. 상속은 객체 지향 프로그래밍에서 객체들 간의
gruda.tistory.com
JAVA에서의 추상화와 캡슐화
JAVA에서의 추상화와 캡슐화 Java는 객체 지향 프로그래밍(OOP)의 특징을 가진 프로그래밍 언어입니다. 객체 지향 프로그래밍은 객체들의 상호작용을 기반으로 프로그램을 작성하는 방법입니다.
gruda.tistory.com
Java에서의 클래스와 객체
Java에서의 클래스와 객체 Java는 객체 지향 프로그래밍 언어로, 모든 것이 객체로 구성되어 있습니다. Java에서 클래스는 객체를 정의하는 데 사용됩니다. Java String 클래스의 다양한 메소드 Java Stri
gruda.tistory.com
인터페이스는 클래스와 마찬가지로 패키지(package) 내부에 선언할 수 있으며, 다른 패키지에서도 사용할 수 있습니다. 인터페이스를 구현하는 클래스에서는 implements 키워드를 사용하여 인터페이스를 구현합니다.
public interface MyInterface {
public void myMethod(); // 추상 메소드
public static final int MY_CONSTANT = 1; // 상수
}
public class MyClass implements MyInterface {
public void myMethod() {
// MyInterface 인터페이스의 추상 메소드를 구현
}
}
위 코드에서 MyInterface 인터페이스는 추상 메소드 myMethod()와 상수 MY_CONSTANT를 포함하고 있습니다. MyClass 클래스에서 MyInterface 인터페이스를 구현하기 위해 implements 키워드를 사용하고, myMethod() 메소드를 구현합니다.
인터페이스의 장점
인터페이스는 다음과 같은 장점을 가지고 있습니다.
1. 다중 상속 가능
JAVA에서는 클래스의 다중 상속을 허용하지 않습니다. 하지만 인터페이스는 다중 상속이 가능합니다. 이를 통해 하나의 클래스가 여러 개의 인터페이스를 구현하여 다양한 기능을 수행할 수 있습니다.
2. 코드의 재사용성 증가
인터페이스는 여러 클래스에서 공통으로 사용할 수 있는 기능을 정의합니다. 이를 통해 코드의 재사용성을 높일 수 있습니다.
3. 유연한 구현
인터페이스는 구현(implement)을 강제하기 때문에, 클래스에서 반드시 구현해야 하는 기능을 명확하게 정의할 수 있습니다. 또한, 인터페이스를 구현하는 클래스에서는 자유롭게 구현할 수 있기 때문에, 여러 클래스에서 같은 인터페이스를 구현하더라도 다양한 구현 방법을 사용할 수 있습니다.
인터페이스의 예제 인터페이스를 사용하여 다음과 같은 예제를 구현할 수 있습니다.
public interface Shape {
public double area(); // 도형의 넓이를 반환하는 추상 메소드
}
public class Circle implements Shape {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double area() {
return Math.PI * Math.pow(radius, 2);
}
}
public class Rectangle implements Shape {
private double width;
private double height;
public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}
public double area() {
return width * height;
}
}
public class Main {
public static void main(String[] args) {
Shape[] shapes = new Shape[2];
shapes[0] = new Circle(3);
shapes[1] = new Rectangle(4, 5);
for (Shape shape : shapes) {
System.out.println("넓이: " + shape.area());
}
}
}
위 코드에서 Shape 인터페이스는 도형의 넓이를 반환하는 추상 메소드 area()를 정의합니다. Circle 클래스와 Rectangle 클래스는 Shape 인터페이스를 구현하여 각 도형의 넓이를 계산합니다. Main 클래스에서는 Shape 인터페이스 타입의 배열을 생성하고, 각 도형의 넓이를 출력합니다.
결론
인터페이스는 JAVA에서 클래스와 함께 가장 기본적인 개념 중 하나입니다. 인터페이스는 추상 메소드와 상수(constant)만을 포함하며, 클래스와 달리 인스턴스를 생성할 수 없습니다.
대신, 인터페이스를 구현하는 클래스에서 추상 메소드를 구현하여 사용합니다. 인터페이스는 다중 상속이 가능하고, 코드의 재사용성을 높이는 등 여러 가지 장점을 가지고 있습니다. 인터페이스는 객체지향 프로그래밍에서 중요한 역할을 담당하므로, 반드시 숙지하고 활용할 필요가 있습니다.
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
JAVA: 중첩 클래스(Nested class)와 내부 클래스(Inner Classes) (0) | 2023.03.03 |
---|---|
JAVA에서 추상 클래스 (Abstract Classes) (0) | 2023.03.03 |
JAVA에서의 생성자와 소멸자 (0) | 2023.03.02 |
Java에서 상속과 다형성의 이해 (0) | 2023.03.02 |
JAVA에서의 추상화와 캡슐화 (0) | 2023.03.02 |