JavaRush /Java Blog /Random-KO /Java의 인터페이스
vinsler
레벨 35

Java의 인터페이스

Random-KO 그룹에 게시되었습니다
나는 특정 요청을 가진 사람에게 이해하기 어려운 것을 설명하려는 목표가 없으면 나쁜 이야기꾼이므로 간단한 것들은 이해하고 일단 여기에 글을 쓰겠습니다. 나는 먼저 질문을 하고 그 다음에 어떻게 하는지 알려주는 JavaRush 교육 예제를 따르지 않습니다. 나는 말하고, 먼저 보여주고, 설명하는 것처럼 먼저 말하고, 질문하는 것을 지지합니다.
Java의 인터페이스 - 1
BS: 동작 == 동작, 동의어로 간주하세요. 동작은 단순히 더 정확하게 이해되며, 항상 활동적인 것이며 동작은 아무 것도 표시하지 않을 수 있습니다.

인터페이스 - 인터페이스

이게 뭔가요? 예제 인터페이스 목록(제네릭 포함):
public interface Store<T, ID> {
    void add(T t);
    void update(T t, ID i);
    void delete(ID i);
    T findOne(ID i);
    List<T> findAll();
}
공통 crud(CRUD: 생성, 읽기, 업데이트, 삭제) 인터페이스. 놀라지 마세요. 모든 것이 아주 간단합니다. 이 인터페이스는 많은 데이터베이스 작업이 다음 원칙을 기반으로 함을 의미합니다. 레코드를 추가하고, 레코드를 업데이트하고, 모든 레코드를 삭제하고 찾아야 합니다. 당신은 이것을 100번 더 접하게 될 것이며 거의 동일한 인터페이스를 같은 횟수만큼 직접 작성하게 될 것입니다. 클래스에서 구현해야 하므로 공개로 지정됩니다. 클래스로 구현된다는 것은 무엇을 의미합니까 ? 모든 것은 매우 간단합니다. 인터페이스의 모든 메서드를 설명해야 합니다. 클래스 구현의 가장 간단한 예:
void add (T t) {
	bookstore.add(t);
}
T t 대신 특정 일반 제품이 대체됩니다. 간단히 말해서 이것은 변수의 TYPE이므로 T = Type으로 가장 자주 표시됩니다. 이 예에서는 다음과 같을 수 있다고 가정해 보겠습니다.
void add (Book book) {
	bookstore.add(book);
}
당연히 Book book 대신 구현에 필요한 모든 변수를 대체할 수 있습니다. 이해하기 위해 이론적으로 T = Object라고 가정할 수 있으며 Java의 모든 것은 Object이므로 거기에서 클래스/변수를 정의할 수도 있습니다. 유일한 문제는 나중에 발생합니다. 클래스가 0인 경우는 예외입니다. 그 자체로 말하면 객체를 특정 동작 부분으로 나누어 객체 간의 관계를 정의하는 특정 프로그램 구조입니다. 인터페이스의 목적은 클래스에 의한 구현을 위한 기능을 정의하는 것입니다. 즉, 메소드 서명에 대한 설명입니다. 인터페이스 내부에는 값을 반환하고 입력하는 메소드의 이름이 있습니다. 글쎄, 여전히 거기에서 일부 변수를 지정할 수 있지만 즉시 암시적으로 public static final이 되며 프로그램의 어느 부분에서든 액세스할 수 있습니다. 인터페이스는 작업을 설명하므로 동일한 작업이 인터페이스에 포함됩니다. 기능이나 방법. 이것이 왜 필요한가요? 이것이 무엇을 단순화하고 어떤 이점을 제공합니까? 행동과 행동에 대한 설명을 단순화합니다. 우리는 무엇을 해야 할지 말하지만, 각 클래스는 이를 수행하는 방법을 자체적으로 구현합니다. 대규모 프로젝트에서 시간을 절약하세요. 인터페이스는 어떤 작업을 수행해야 한다는 것을 알고 있지만 이를 수행하는 방법은 다양할 수 있는 상황에서 생성됩니다. 인터페이스는 작업의 이름을 설명합니다. 이는 단순히 일부 추상화의 방향입니다. Cloneable, Remote 등의 마커와 같이 메서드와 필드가 없는 인터페이스도 있을 수 있습니다. 모두가 좋아하는 자동차의 예를 들어보겠습니다. 그 인터페이스는 자동차의 가능한 동작, 스티어링 휠 회전 또는 이동 방향, 속도 증가, 남은 휘발유 등을 설명합니다. 즉, 모든 자동차가 가질 수 있는 것과 동일한 동작입니다. 즉, 우리는 최초의 자동차를 만드는 가장 낮은 수준까지 저하의 정글로 내려가 그것이 어떻게 만들어졌고 무엇을 가졌는지 우리 자신의 두뇌로 알아냅니다. 당연히 우리는 이것을 추상적으로 설명하고 행동에 대해서만 설명합니다. 최초의 자동차에는 무엇이 있었나요? 운전대가 있었나요? 그것은 스티어링 휠/움직임의 방향으로 어딘가로 회전하고 있다는 것을 의미합니다. 바퀴가 있었나요? 네, 그건 제가 어느 정도의 속도로 운전하고 있었다는 뜻입니다. 속도가 바뀌었죠. 이것이 전체 인터페이스입니다. 그러나 일반적으로 인터페이스는 특정 작업의 일부 구현을 위해 생성됩니다. 저것들. 우리는 당신이 생각할 수 있는 그 어떤 것보다 더 구체적인 프로그램을 작성합니다. 따라서 인터페이스 자체에는 더 명확하고 구체적인 방법이 포함됩니다. 물론 가능한 한 추상적일 것입니다. 인터페이스는 클래스로 서로 상속될 수 있습니다.
interface MyInterface extends NotMyinterface;
인터페이스는 클래스에서 구현됩니다. 원하는 만큼 많은 인터페이스를 구현할 수 있습니다. 상속과 달리 하나만 상속합니다.
class NewClass extends OldClass implements MyInterface, NotMyinterface;
저것들. 우리는 몇 가지 작업을 생각해 내고 이름을 지정하고 데이터를 입력하고 데이터를 반환하고 이 모든 것을 인터페이스에 작성한 다음 클래스를 만들고 이 클래스에 인터페이스를 추가했습니다. 이 클래스에서 인터페이스를 구현했습니다. 또한 인터페이스에 설명된 모든 메서드/함수에는 구현이 있어야 합니다. 메서드 앞에 default라는 단어를 추가하고 클래스처럼 메서드에 직접 구현을 작성하여 인터페이스 자체에서 직접 수행할 수 있습니다. 이는 Java 버전 8에서 가능해졌습니다. 이 인터페이스를 구현할 클래스에서도 수행할 수 있습니다. 인터페이스를 작성하고, 클래스에 구현하고, 클래스에 구현을 롤아웃하고, 실행하고 테스트할 수 있습니다. 인터페이스에서 다음 내용을 읽을 수도 있습니다.
  • 정적 방법.
  • 비공개 방법. (코드 반복)
  • 변수/상수.
  • 중첩된 인터페이스.
하지만 나중에 하는 것이 더 좋으며, 머리를 너무 많이 채우는 것도 해롭습니다. 흥미로운 질문입니다. 볼보란 무엇인가요? 클래스 또는 인터페이스?
line1: Volvo v = new VolvoV2();
line2: Volvo v = new VolvoV3();
인터페이스 외에도 추상 클래스 및 클래스에 대해 계속해서 알아볼 가치가 있습니다. 어쩌면 나중에 몇 시간 더 여유가 생길 수도 있을 것입니다. ))) 추신: 여러분, 게시물이나 PM에서 모든 비판을 요청합니다. 모든 사람이 그것을 가지고 있다는 것을 완벽하게 이해합니다.))) 이것이 조금 더 나아질 이유이기 때문에 항상 듣고 싶습니다. 다시 계속 앞으로 나아갑니다. 그럼 모두에게 감사드리며 프로그래밍에 행운이 있기를 바랍니다. )))
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION