2012-12-11 1 views
0

여기에 일부 코드가 있습니다. 나는 하나의 클래스를 사용하여 다른 클래스를 참조하려고 노력하고있어서 그 사람의 이름을 얻을 수 있습니다. 주 클래스의 firstName을 작동 시키길 원하지만 IDE는 변수가 없다고 언급합니다. 'first'를 'firstName'으로 교체 하시겠습니까?다른 클래스의 컴포지션을 사용하여 이름을 설정하는 방법은 무엇입니까?

Main 클래스 :

public BasePlusCommissionEmployee(String first, String last, 
      String ssn, double sales, double rate, double salary) { 


     cE = new CommissionEmployee(first, last, ssn, sales, rate); 
     setBaseSalary(salary); 
    } 

public void setFirstName(String firstName) { 
     // Trying to get this to work... 
     cE.setFirstName(first); 
    } 

서브 클래스

private String firstName; 
public void setFirstName(String first) 
    { 
     firstName = first; 
    }  
+0

어디에서 'cE'를 선언합니까? 'BasePlusCommissionEmployee' 선언을 보여주세요. –

답변

1

가 'firstName을'작업과 '첫 번째'대체 할 것인가?

예.

public void setFirstName(String firstName) { 
    // Trying to get this to work... 
    cE.setFirstName(first); 
} 

firstName이 방법 first 이름의 변수에 로컬 변수가 정의되지 내이다.

따라서 first을 사용하면 컴파일 오류가 발생합니다.

+0

답장을 보내 주셔서 감사합니다. – user1874549

+0

@ user1874549 : 환영합니다. – Azodious

0

기본적으로 선언 된 변수 이름의 이름에 따라 setter 및 getter 메서드를 사용하려고합니다. 따라서, 귀하의 경우, 기본 클래스가 'first'로 'first name'을 참조하면 setFirst (String first) 메소드를 선언하는 것이 더 좋습니다. 'firstName'으로 선언하고 싶다면 setFirstName (String firstName)으로 설정하면됩니다. 또한 여기에 제시된 코드를 기반으로 보면 기본 클래스가 CommissionEmployee의 인스턴스를 'cE'로 유지하고 기본 클래스에서 setter 메서드가 필요한 일부 매개 변수를 사용하여 만들어지는 것처럼 보입니다. 하위 클래스에있는 사람들을 선언합니다.