2013-06-23 3 views
1

완벽한 자바 멍청한 놈. 현재 자신을 가르치고 있습니다. 최근에는 클래스를 사용하여 다른 클래스의 정보를 가져와 인쇄하는 기본 프로그램을 만들려고했습니다. 이 오류가 계속 :다른 클래스의 클래스 변수에 어떻게 액세스합니까?

http://shrib.com/sEyGhFZr

나 좀 도와주십시오

error cannot find symbol 

System.out.print1n(ljames.weight); 

symbol: variable weight 
location: class ljames 

가 여기 내 코드입니다.

답변

0

변수의 가시성 만 같아 보입니다. 이 변수를 공개로 선언하지 않았고 다른 클래스에서는 액세스 할 수 없습니다.

함수를 공개로 선언 했으므로 다른 곳에서 액세스 할 수 있습니다.

공용 생성자를 만들고 변수에 대한 get-accessor를 만드는 것이 좋습니다. 당신은 생성자를 통해 그것들을 설정하고 get-accessor를 통해 그들을 읽는다. 이렇게하면 데이터를 안전하게 유지할 수 있으며 필요할 때마다 변경할 수 있습니다. 이것은 데이터 클래스에서와 같이

class Data { 
    String height; 
    int weight; 
    int depth; 
    public Data(String height, int weight, int depth) { 
     this.height = height; 
     this.weight = weight; 
     this.depth = depth; 
    } 
    public string getHeight() { 
     return height; 
    } 
    public int getWeight() { 
     return weight; 
    } 
    public int getDepth() { 
     return depth; 
    } 
} 
+0

고마워요. 나는 내 머리 위로 들어가고 있다고 생각한다. 나는 현재 "샘이 21 일만에 자바를 가르친다"라는 책에서 배우고있다. 모든 것이 새로운 것입니다. fundementals 객체 지향 프로그래밍에 대한 내 마음을 감싸는 데 시간이 좀 걸렸습니다. 어쨌든, 저는 4 일째 : 목록, 논리 및 루프에 있습니다. 나는 6 일째에 생성자를 배운다. 자신을 서두 릅니다. –

+0

@AbdiAbdalla 시작은 진실입니다. 마침내 다섯 번째 언어를 마스터하면 모든 것이 똑같아 보이고 더 이상 문제가 없습니다. :) (나는 자바의 초심자이다. ^^) – bash0r

0

클래스 ljames에는 필드 이름 무게이 없습니다.

+0

그는 main 함수 안에'Data' 타입의 변수로 클래스 이름을 오버라이드합니다. 가시성이 부족하여 문제가 발생합니다. 그러나 당신은 맞습니다. 그는 클래스 나 변수의 이름을 바꾸어야합니다. – bash0r

+0

링크를 클릭 할 때 나타나는 코드에서 Ijames가 데이터를 확장하지 않으며 "new ljames()"가 없습니다. 그 종류의 혼란. – clearwater

관련 문제