2013-03-31 4 views
0

내 응용 프로그램의 main 메소드에서 employee 클래스의 객체를 만들려고합니다. 그러나 변수 이름 lastName firstName 또는 salary를 찾을 수 없으며 이것이 내 성명이 무엇인지 알 수 없습니다.객체 생성시 문제가 발생했습니다.

나는 그것의 실행 여부 인터페이스를 표시해야하지만, 내가 할 경우 내가 그들을 포함하는 내 게시물을 편집 있을지 확실하지 않다
package javaapplication14; 
public class Employee implements DepartmentConstants, Displayable 
{ 
    private int department; 
    private String firstName; 
    private String lastName; 
    private double salary; 

    public Employee(int department, String lastName, String firstName, 
     double salary) 
    { 
     this.department = department; 
     this.lastName = lastName; 
     this.firstName = firstName; 
     this.salary = salary; 
    } 

    @Override 
    public String getDisplayText() 
    { 
     String displayText = firstName + lastName + salary + department ; 
     return displayText; 
    } 
} 

처럼
Employee employee = new Employee(department, lastName, firstName, salary); 

직원 클래스 보인다. 주요 방법은 내 응용 프로그램의 주요 방법으로 직원 클래스의 객체를 만들려고 해요하지만이 변수를 찾을 수 없습니다

package javaapplication14; 
public class DisplayableTestApp 
{ 
    public static void main(String args[]) 
    { 
     System.out.println("Welcome to the Displayable Test application\n"); 

     // create an Employee object 
     Employee employee = new Employee(department, lastName, firstName, salary); 

     // display the employee information 
     String displayTextEmployee = employee.getDisplayText(); 
     System.out.println(displayTextEmployee); 

     // create a Product object 
     Product product = new Product(); 
     // display the product information 
     String displayText = product.getDisplayText(); 
     System.out.println(displayText); 
    } 
} 
+2

주요 방법을 보여준다. –

+0

나는 그것을 내 게시물에 편집했습니다. –

답변

3

입니다

은 할 수 없습니다 변수가 생성자 호출의 범위에 존재하지 않기 때문에 변수를 찾습니다. 생성자에 변수를 생성하여 전달해야합니다.

Employee employee = new Employee(1, "Smith", "John", 50000); 

또는 :

int department = 1; 
String lastName = "Smith"; 
String firstName = "John"; 
double salary = 50000; 
Employee employee = new Employee(department, lastName, firstName, salary); 
+0

이 변수는 Employee 클래스에 있으며 직원 객체를 만들기 위해 가져 오기를 시도하고 있습니다. 그럴 수있는 적절한 방법은 무엇입니까? 변수가없는 employee 객체를 만들 때 메서드가 int 두 개의 문자열과 double을 기대한다는 오류가 발생합니다. –

+0

@AlexChapp : 이러한 변수는 적절한 변수가 생성자의 매개 변수에 전달 될 때 Employee 클래스에서 * 인스턴스화됩니다 * . –

+0

모든 도움에 감사드립니다. –

1

귀하가에 4 개 변수를 전달하는 예로서,

public Employee(int department, String lastName, String firstName, double salary) 

그래서 :

Employee 클래스는 생성자에서 소요 생성자가 아직 생성하지 않았습니다. 여러 다른 장소에서 같은 이름이나 다른 것을 사용하지 않으면 똑바로 유지하는 것이 훨씬 쉬울 것입니다. 예를 들어, 클래스를 다음과 같이 만들었습니다.

public class Employee implements Department Constants, Displayable 
{ 
    private int employeeDepartmet; 
    private String employeeFirstName; 
    private String employeeLastName; 
    private double employeeSalary; 

    public Employee (int dept, String firstN, String lastN, double pay) 
    { 
     employeeDepartment = dept; 
     employeeFirstName = firstN; 
     employeeLastName = lastN; 
     employeeSalary = pay; 
    } 

@Override 
public getDisplayText() 
    { 
     String displayText = employeeDepartment + employeeFirstName + employeeLastName + employeeSalary; 
     return displayText 
    } 
} 

는 그런 다음 주요 기능에 당신의 이름이 같은 변수를 구분하는 this.department를 사용할 필요가 없습니다

int department = 3; 
String firstName = "Joe"; 
String lastName = "Adams"; 
double salary = 7.45; 

Employee employeeOne = new Employee(department, firstName, lastName, salary); 

포함이되고있는 변수를 쉽게 알 수있다 그들은 각각 다른 이름을 가지고 있기 때문에 당신의 앱이 department, firstName, lastName과 salary를 찾을 수 없을 때 언급했는데, employeeDepartment 등을 언급하고 있지 않다는 것을 알고있다.

관련 문제