2011-10-02 9 views
2

이 문제가 발생했습니다. 다른 파일에서 2 개의 변수를 가져 와서이를 더하고 합계 값을 반환하는 Java 파일이 있습니다. 지금까지 그것은 aFirst와 aSecond 값을 얻는 데 효과적이지만 sum 메소드에 도달하면 왜 값 1과 2가 손실되는지 (0에 돌아온다) 확실하지 않습니다. 이것은 숙제에 대한 과제입니다.작은 코드 값이 전달되지 않습니다.

public class Pair 
{ 
    private double one, two ; 
    public Pair(double aFirst, double aSecond) 
    { 
     double one = aFirst; 
     double two = aSecond; 
    } 

    public double sum() 
    { 
     double xys = one + two; 
     return(xys); 
    } 
} 
+1

원하는 답변을 찾으면 답을 수락하기 위해 "확인"할 수 있습니다. –

+0

yah 나는 알고있다, 나는했다 – Cody

답변

12

당신은, 지역 변수로 onetwo를 선언하는 인스턴스 변수를 미행하고 있습니다.

+0

대단히 고마워, 나는 지금 그것을 이해한다. this.one을 사용해 보았지만 잘못된 장소에서 사용하고있었습니다. – Cody

6

문제는 생성자입니다. 로컬 변수를 만들고 클래스 필드를 사용하지 않습니다.

private double one, two ; 
public Pair(double aFirst, double aSecond) 
{ 
    this.one = aFirst; 
    this.two = aSecond; 
} 

"this"없이도이 작업을 수행 할 수 있습니다. 하지만 미리 입력하지 마십시오

+0

수정 된 코드에 대해 감사드립니다. 그것은 지금 잘 작동합니다. – Cody

0

로컬 범위와 클래스 멤버에서 동일한 변수 이름을 사용하는 경우 재정의 경우에 클래스 멤버 변수에 액세스하려면 this을 사용하십시오.

관련 문제