2011-02-26 5 views
2

"형태로 해결 될 수 없다" 수업 :자바 클래스는이 내가지고있어 오류가

import java.util.Scanner; 

public class TeamLeadDemo extends Employee { 
    public TeamLeadDemo(String empName, String empNumber, String hireDate) { 
     super(empName, empNumber, hireDate); 
     // TODO Auto-generated constructor stub 
    } 

public static void main(String[] args) { 
    double sal; 
    int min, atten; 

    //create scanner object 
    Scanner keyboard = new Scanner(System.in); 

    //inputting data 
    System.out.println("Enter minimum training: "); 
    min = keyboard.nextInt(); 
    System.out.println("Enter id: "); 
    atten = keyboard.nextInt(); 
    System.out.println("Enter Bonus: "); 
    sal = keyboard.nextDouble(); 

    //instantiating object 
    ShiftSupervisor pw = new TeamLeader(sal, min, atten); 

    //outputting data 
    System.out.println("Employee Details:\n" + pw); 

    } 
} 

어떤 오류가 발생하며 어떻게 해결할 수 있습니까?

편집 : 들여 쓰기, 공백, 명명 규칙 및 가독성 문제는 다소 해결되었습니다.

+2

귀하의 명명 규칙은 매우 심각합니다. [해결하십시오.] (http://www.oracle.com/technetwork/java/codeconventions-135099.html#367) – ide

+3

질문에 대한 좋은 답변을 얻으려면 체크 표시를 클릭해야합니다. 그 옆에. 그러면 답변자와 답변자 모두에게 점수가 주어지며 "감사합니다"라고 말하는 좋은 방법입니다. 그렇게하지 않으면 무례한 것으로 간주됩니다. 모든 질문을 검토하고 답변을 수락하는 것이 좋습니다. – EboMike

답변

4

TeamLeader은 내부 클래스 (들여 쓰기가 좋지 않음) 인 것처럼 보이며 정적이 아니기 때문에 자체적으로 인스턴스화 할 수 없습니다.

당신이 중 하나는 TeamLeader 자신의 클래스를 만들거나 그것을 static 클래스를 만들고 Employee.TeamLeader가 (또는 상위 클래스가 무엇이든, 당신의 들여 쓰기 여기에 정말 도움이되지 않습니다)로 인스턴스화 할 필요가있다.

+0

나는 왜 이클립스 구매가 나에게 새로운 수업을 선언하라고하는지 이해하지 못한다. 공용 클래스 TeamLeader는 ShiftSupervisor { 가} 그 다음은 들여 쓰기가 나쁜 것에 대한 다른 클래스 공용 클래스 ShiftSupervisor { 을} – lonesarah

+0

Upvoted를 선언달라고 확장합니다. 코딩 스타일과 일관성은 아름답고 매우 유용한 것입니다. – SgtPooki

1

귀하의 예외 메시지는이 제대로 컴파일되지 않은 몇 가지 클래스를 사용하는 프로그램을 실행하려고 한 것을 의미한다이

Exception in thread "main" java.lang.Error: Unresolved compilation problem: TeamLeader cannot be resolved to a type

을 말한다.

돌아가서 컴파일 오류를 수정하십시오.

컴파일 오류에 대한 수정 사항은 무엇인지 명확하지 않지만 오류는 TeamLeader이라는 클래스를 찾을 수 없다는 오류입니다. 아마도 존재하지 않을 수도 있습니다. 아마도 그것은 다른 패키지에있을 것입니다. 아마도 당신은 그것을 집계하지 않았을 것입니다. 아마 다른 것. 코드를 보면


, 그 문제는 TeamLeadDemo라는 두 가지 클래스, Employee의 중첩 클래스 하나와 최상위 클래스로 두 번째를 정의했다고 생각합니다. 게다가 이들 중 두 번째는 TeamLeader ...을 사용하려고 시도하지만 실제로 선언 한 TeamLeader 클래스는 Employee에 2 단계로 중첩되어 있습니다. 즉 실제 이름은 Employee.ShiftSupervisor.TeamLeader입니다.

이것은 조금 비 효과적입니다.

이 모양을 보면, 한 파일을 다른 파일에 넣는 것이 무엇을 의미하는지에 대한 이해없이 동일한 파일 ("Employee.java")에 전체 클래스 묶음을 정의했습니다. 대부분 각 클래스는 자체 파일로 선언되어야합니다. 그리고 대부분의 경우 중첩 된 TeamLeadDemo 클래스를 삭제해야합니다. 이 문제가 받는다는 프로젝트의 경우

0

다음 메이븐> 업데이트 프로젝트 문제

-1
당신이 어딘가에에서 이동하여 내부 클래스를 만드는 경우 그 오류가 나타날 수 있습니다

및 조직 개편과 함께 해결해야 마우스 오른쪽 단추로 클릭 내부 클래스에 대한 가져 오기 행을 외부 클래스 파일에 넣습니다. 그 후 내부 클래스 cannot be resolved to a type 어디서나. 자동으로 가져 오기를 삽입해도 도움이되지 않습니다.

외부 클래스의 가져 오기 섹션을 게시하지 않았으므로 해당 변형을 확인할 수 없습니다. 그것을 확인하고 과도한 수입이 있다면 제거하십시오.

Eclipse에서 작업하는 경우 이후에 프로젝트를 정리해야 할 가능성이 큽니다.

관련 문제