source

자바에서의 인터페이스와 @interface의 차이점은 무엇입니까?

gigabyte 2022. 7. 17. 16:46
반응형

자바에서의 인터페이스와 @interface의 차이점은 무엇입니까?

대학 재학 중 90년대 후반 JBuilder를 사용한 이후 자바에 손을 댄 적이 없기 때문에 이번 주에 작은 자바 프로젝트를 진행하고 Intellij IDEA를 IDE로 사용하여 평소와는 다른 속도를 내고 있습니다.네트워크 개발

인터페이스 및 @인터페이스 추가가 지원되고 있는 것을 알 수 있습니다.@인터페이스란 무엇인가요?또, 통상의 인터페이스와 어떻게 다른가요?

public interface Test {
}

대.

public @interface Test {
}

조금 검색을 해봤지만 @interface에 관한 유용한 정보를 많이 찾을 수 없었습니다.

@ 기호는 주석 유형 정의를 나타냅니다.

즉, 실제로는 인터페이스가 아니라 @override와 같은 함수 수식자로 사용되는 새로운 주석 유형입니다.

제목에 대한javadocs 항목을 참조하십시오.

인터페이스:

일반적으로 인터페이스는 기본 구현 세부사항을 노출하지 않고 계약을 노출합니다.객체 지향 프로그래밍에서 인터페이스는 동작을 노출하지만 논리는 포함하지 않는 추상 유형을 정의합니다.구현은 인터페이스를 구현하는 클래스 또는 유형에 따라 정의됩니다.

@interface : (주석 유형)

코멘트가 많은 다음의 예를 들어 보겠습니다.

public class Generation3List extends Generation2List {

   // Author: John Doe
   // Date: 3/17/2002
   // Current revision: 6
   // Last modified: 4/12/2004
   // By: Jane Doe
   // Reviewers: Alice, Bill, Cindy

   // class code goes here

}

이 대신 주석 유형을 선언할 수 있습니다.

 @interface ClassPreamble {
   String author();
   String date();
   int currentRevision() default 1;
   String lastModified() default "N/A";
   String lastModifiedBy() default "N/A";
   // Note use of array
   String[] reviewers();
}

그러면 클래스에 다음과 같이 주석을 달 수 있습니다.

@ClassPreamble (
   author = "John Doe",
   date = "3/17/2002",
   currentRevision = 6,
   lastModified = "4/12/2004",
   lastModifiedBy = "Jane Doe",
   // Note array notation
   reviewers = {"Alice", "Bob", "Cindy"}
)
public class Generation3List extends Generation2List {

// class code goes here

}

PS: 많은 주석이 코드의 코멘트를 대체합니다.

참고 자료: http://docs.oracle.com/javase/tutorial/java/annotations/declaring.html

interface키워드는 Java에서 기존 인터페이스 클래스를 선언하고 있음을 나타냅니다.
@interface키워드는 새로운 주석 유형을 선언하기 위해 사용됩니다.

구문에 대한 설명은 주석 관련 docs.oracle 튜토리얼을 참조하십시오.
자세한 내용은 JLS를 참조하십시오.@interface수단.

interface:그것을 실장하는 클래스의 계약을 정의합니다.

@interface:주석 계약을 정의합니다.

Java 프로그래밍 언어의 인터페이스는 클래스가 구현해야 하는 동작을 지정하는 데 사용되는 추상 유형입니다.프로토콜과 유사합니다.인터페이스는 interface 키워드를 사용하여 선언됩니다.

@interface는 사용자 정의 Java 주석을 작성하기 위해 사용됩니다.주석은 Java 클래스 또는 인터페이스와 마찬가지로 자체 파일에 정의됩니다.다음으로 커스텀 Java 주석의 예를 나타냅니다.

@interface MyAnnotation {

    String   value();

    String   name();
    int      age();
    String[] newNames();

}

이 예에서는 4개의 요소가 있는 MyAnnotation이라는 주석을 정의합니다.@interface 키워드에 주의해 주세요.이것은 Java 주석 정의임을 Java 컴파일러에 알립니다.

각 요소는 인터페이스의 메서드 정의와 동일하게 정의됩니다.데이터 유형과 이름이 있습니다.모든 기본 데이터 유형을 요소 데이터 유형으로 사용할 수 있습니다.배열을 데이터 유형으로 사용할 수도 있습니다.복잡한 개체는 데이터 유형으로 사용할 수 없습니다.

위의 주석을 사용하려면 다음과 같은 코드를 사용할 수 있습니다.

@MyAnnotation(
    value="123",
    name="Jakob",
    age=37,
    newNames={"Jenkov", "Peterson"}
)
public class MyClass {


}

레퍼런스 - http://tutorials.jenkov.com/java/annotations.html

언급URL : https://stackoverflow.com/questions/918393/whats-the-difference-between-interface-and-interface-in-java

반응형