2014-09-12 3 views
-1

저는 Java로 코딩하는 방법을 단계별로 배우는 초보자 자바 프로그래머입니다.Java 클래스 및 인터페이스 구현

Java에서 인터페이스 구현 인이 코드가 있습니다.

디버깅을 도와주세요. 여기

package ke.munyiri.me; 

public interface Hp { 
    public void scrollUp (int increment); 
    public void scrollDown (int decrement); 
    public void rightClick(); 
    public void leftClick(); 

} 

과 그 구현 : 당신은 당신의 코드에서 컴파일 오류가

/** 
* 
*/ 
package ke.munyiri.me; 

/** 
* @author MUNYIRI 
* 
*/ 
public abstract class Mouse implements Hp { 
    char manufacturer; 
    char type; 
    static int scroll; 
    boolean click; 


    public static void main(String[] args){ 

    public void scrollUp(int increment){ 
     scroll = scroll + increment; 
     System.out.println("The mouse is scrolling up"); 
     } 
     public void scrollDown (int decrement){ 
      int scrollDown = scroll - decrement; 
      System.out.println("The mouse is scrolling down"); 
     } 


     public void rightClick(){ 
      boolean rightClick = true; 
      System.out.println("The mouse is right Clicking"); 
     } 
     public leftClick(){ 
      boolean leftClick = true; 
      System.out.println("The mouse is left Clicking"); 
     } 
    } 

} 
+3

"문제"는 무엇입니까? (음, 흔히 main 메소드는 닫아야 할 때 닫히지 않지만, 오류 메시지를 포함하여 정확하고 정확한 문제 설명을 포함시켜야합니다.) – user2864740

+0

@Peter 당신이 직면 한 문제는 무엇입니까 –

+0

그의 코드가 컴파일되지 않습니다, 그게 문제입니다 –

답변

1

여기

는 인터페이스입니다. 다른 메소드 안에 메소드를 선언 할 수 없습니다. 귀하의 코드에서 기본 메소드 내부에 인터페이스 메소드를 재정의했습니다. 주요 방법 범위에서 그들을 꺼내십시오. 이처럼

public abstract class Mouse implements Hp { 
    char manufacturer; 
    char type; 
    static int scroll; 
    boolean click; 

    public static void main(String[] args){ 
    } 

    public void scrollUp(int increment){ 
     scroll = scroll + increment; 
     System.out.println("The mouse is scrolling up"); 
    } 
    public void scrollDown (int decrement){ 
     int scrollDown = scroll - decrement; 
     System.out.println("The mouse is scrolling down"); 
    } 

    public void rightClick(){ 
     boolean rightClick = true; 
     System.out.println("The mouse is right Clicking"); 
    } 

    public void leftClick(){ 
     boolean leftClick = true; 
     System.out.println("The mouse is left Clicking"); 
    } 
} 
+0

또한 '정적 스크롤'은 특히 여러 개의 'Mouse'(하위 클래스) 인스턴스가 생성되는 경우 오류가 될 수 있다는 사실을 언급하고자합니다. – NoDataFound

0

코드에 문제가 있습니다. method 안에 또 다른 method을 선언 할 수 없습니다.

public MyClass implements MyInterface{ 

    public static void main(String[] args){ 

    } 
    public void myMethod1(){ 

    } 
} 
+0

감사합니다. Gayan – Peter

0

그래서 당신은 인터페이스와 추상 클래스 있지만 구체적인 클래스를 정의하여 구조 변경

. 귀하의 구현을 자체적으로 사용할 수는 없지만 추가 '구현'클래스가 필요합니다. 또는 클래스 정의에서 abstract 키워드를 제거 할 수 있습니다. 이 키워드는 클래스에 추상적 인 메소드가 없으므로 필요하지 않습니다.

다른 사람들이 지적했듯이, 주요 방법 (필요하지 않음)은 닫는 대괄호가 빠져 있습니다.

+0

도움을 주셔서 감사합니다. – Peter

0

인터페이스의 개념을 배우기 전에 기본을 배워야합니다. 즉 은 다른 메소드 안에 구현 된 메소드를 가질 수 없으며 인터페이스에 대해 먼저 추상 및 콘크리트에 대한 지식이 있어야합니다.

추상 클래스

public abstract class GraphicObject { 
    // declare fields 
    // declare nonabstract methods 
    abstract void draw(); 
    } 

추상 클래스는 추상이 또는 추상 메소드를 포함하지 않을 수있다 선언 된 클래스입니다. 추상 클래스는 인스턴스화 할 수 없지만 서브 클래 싱 할 수는 있습니다.

추상 메서드는 구현없이 선언 된 메서드입니다.

콘크리트 CLASS

추상 클래스는 다른 클래스가 파생되는 기본 클래스로 사용하기위한 것입니다. 파생 클래스는 기본 클래스에서 구현되지 않은 메서드에 대한 구현을 제공해야합니다. 누락 된 기능을 모두 구현하는 파생 클래스를 구체적 클래스라고합니다.

public class Graph implements GraphicObject{ 
public void draw() 
{ 
//defination 
}