2013-04-22 3 views
0

다시 전문가에게 도움을 요청합니다. 나의 마지막 글에서 나는 아직 학교에있는 것에 대해 언급했다. 이번에는 인터페이스에 관한 장 (책에는 코드가 없다)이있다. 이번 튜닝은 다음과 같습니다 "메소드 튜닝을 사용하여 Tuner라는 인터페이스를 작성하십시오.이 인터페이스를 구현하는 radio 및 기타라는 두 클래스를 작성하십시오. 주에서는 이들 클래스의 인스턴스를 작성하고 각 인스턴스에 대해 조정 메소드를 호출하십시오. " 나는이 책에 대한 철저한 생각을하고있다. 전에는 솔루션을 DUMDUM 용어로 다시 입력 할 필요가 없습니다.또 다른 Learning Java 수수께끼

이것은 내가 지금까지 가지고있는 것입니다.

public interface Tuner { 
public abstract void tune(); 
} 


public class Guitar extends Tuner implements Tune{ 

public static void main() { 
public void tune(){ 

}}} 




public class Radio extends Tuner implements tune{ 

public static void main(){ 


}} 

감사합니다.

package interfaces; 
interface Tuner { 
    public abstract void tune(); 
} 



package interfaces; 
class Radio implements Tuner { 
public void tune(){ 
} 

} 

package interfaces; 
class Guitar implements Tuner { 
public void tune(){ 
} 
    } 

난 아직도 잘못 짚었하고 말해 주시기 바랍니다 :

이러한 내 최신 변경 사항입니다.

+0

야, 당신은 OOD에 대해 읽어야합니다. leat에서 추상화, 다형성, 상속 및 객체 수명주기에 대한 아이디어를 얻을 수 있습니다. – topchef

+0

한 가지 방법은 인터페이스를 구현하는 경우 모든 메소드를 사용해야한다는 것입니다. 그래서 Guitar와 Radio는 그것을 구현할 경우 Tuner 인터페이스의 모든 메소드를 사용해야합니다. Tuner 클래스를 확장하면 Tuner 클래스의 모든 메소드를 사용할 수 있지만, 필요하지 않으면이 메소드를 모두 사용할 필요는 없습니다. – user2280897

답변

2

문제 : 자바에서

  • , interface의 방법은 모든 public abstract이 때문에 같은 선언 할 필요가 없습니다 수 있습니다.
  • Java classclass 또는 abstract class을 확장 할 수 있지만 interface을 구현합니다. 따라서 귀하의 기타는 튜너 클래스를 구현해야하며 구현하는 인터페이스 (이 경우 tune 메소드)에 선언 된 메소드의 구현을 포함해야합니다.
  • main 메서드는 응용 프로그램의 진입 점이므로 응용 프로그램은이 중 하나만 필요합니다. 그런 다음이 메서드 내에서 Guitar의 인스턴스와 Radio의 인스턴스를 만들고 각각의 인스턴스화 된 개체에 tune 메서드를 호출합니다.
+1

On point 1 : Java에서 인터페이스에는 public abstract 메소드와 public static final 변수가 포함됩니다. public과 abstract는 함축되어 있으며 프로그래머의 재량에 맡겨진 메서드를 나타냅니다. (더 많은 타이핑 == 아무도 이제까지 않습니다) –

+0

조언 해 주셔서 감사합니다. 지금 바로 몇 가지 변화를 시도하고 있습니다! – Ozzyfan2323

+0

실화 @ 레이즈 툰. 그것을 지적 주셔서 감사합니다. – digitaljoel

5

올바른 방향으로 이동해야합니다. Java에서는 extend 클래스와 implement 인터페이스입니다. 지금까지 무엇을에서 내가 볼

+0

조언과 답변에 감사드립니다! – Ozzyfan2323

0
  1. interfaceabstract 방법이없는 - 모든 방법을 정의하여 추상적이다.
  2. interface의 모든 구성원은 기본적으로 public입니다. public은 필요하지 않습니다.
  3. interface을 구현하고 class을 확장합니다. implements Tuner이 필요합니다.
  4. implements Tune은 불필요합니다.