2016-07-16 5 views
1

Java 용 코드는 아래를 참조하십시오.값이 할당되면 변수 값이 표시되지 않습니다.

CLASS1 : 가 나는 클래스 1에 다음 코드했습니다

public String getnumber() 
    { 
      return this.number; 
    } 

CLASS2 :

Class1 cla = new Class1(); 
public String number_to_compute=cla.getnumber() // This is variable 

강좌 3 : 가 나는 코드를 다른 클래스의 Class2의는 다음과 같이 설정 한 : 세 번째 클래스가 있습니다. class3 내가 실행 파일을 가지고 있습니다. 다른 방법을 보내고 :

Class1 class1 = new Class1(); 
Class2 class2 = new Class2(); 

public static void main(String args[]) 
     { 
      System.out.println(class1.getumber()); 
      System.out.println(class2.number_to_compute); 
     } 

결과 변수 :

을 위의 문제에서, class1.getumber() 잘 작동하고 정답을 제공 곳 class2.number_to_compute outtputs null

class2.number_to_computenull 가치인가?

답변

0

Class2에서 Class2 안에 만들어진 cla 개체를 사용하여 number_to_compute을 계산합니다. 제대로 Class2의의 cla

설정 number의 값을 (그것은 Class3에서 Class1 객체를 사용하지 않습니다).

class Class1 
{ 
    String number; 
    public String getnumber() 
    { 
    return this.number; 
    } 
} 

class Class2 
{ 
    Class1 cla; 
    public String number_to_compute; 

    public Class2() 
    { 
    cla = new Class1(); 
    cla.number = "1"; 
    number_to_compute = cla.getnumber(); 
    } 
} 

class Class3 
{ 
    Class1 class1; 
    Class2 class2; 

    public Class3() 
    { 
    class1 = new Class1(); 
    class1.number = "2"; 
    class2 = new Class2(); 
    } 

    public static void main(String args[]) 
    { 
    Class3 cl = new Class3(); 
    System.out.println(cl.class2.cla.getnumber()); 
    System.out.println(cl.class2.number_to_compute); 
    } 
} 

또는 그런데 Class3

class Class1 
{ 
    String number; 
    public String getnumber() 
    { 
    return this.number; 
    } 
} 

class Class2 
{ 
    Class1 cla; 
    public String number_to_compute; 

    public Class2() 
    { 
    cla = new Class1(); 
    cla.number = "1"; 
    number_to_compute = cla.getnumber(); 
    } 
} 

class Class3 
{ 
    Class1 class1; 
    Class2 class2; 

    public Class3() 
    { 
    class1 = new Class1(); 
    class1.number = "2"; 
    class2 = new Class2(); 
    class2.cla = class1; 
    } 

    public static void main(String args[]) 
    { 
    Class3 cl = new Class3(); 
    System.out.println(cl.class2.cla.getnumber()); 
    System.out.println(cl.class2.number_to_compute); 
    } 
} 

에 당신이 만든 Class1 객체를 사용할 수 있습니다, 인스턴스 변수를 설정하는 것이 use setters and getters에 좋다.

0

나를 위해 잘 작동합니다. 내가보아야 할 유일한 것은 class1에 대한 static 키워드와 Class3에있는 class2 정의입니다. 아래를 참조하십시오.

public class Class1 
{ 
    String number = "1234"; 

    public String getnumber() 
    { 
     return this.number; 
    } 
} 

public class Class2 
{ 
    Class1 cla = new Class1(); 
    public String number_to_compute = cla.getnumber(); 
} 

public class Class3 
{ 
    static Class1 class1 = new Class1(); 
    static Class2 class2 = new Class2(); 

    public static void main(String args[]) 
    { 
     System.out.println(class1.getnumber()); 
     System.out.println(class2.number_to_compute); 
    } 
} 

실행, 그것은 문제는, 당신은 개별적으로 모두 class2class3 두 개체가 서로 종속되지 않습니다 그 이유는에 class1 새로운 개체를 만드는 것입니다

1234 
1234 
1

를 출력 할 때 .. 경우 class2class3의 인스턴스가 class1 인 경우 class1singleton으로 만들어야합니다. 그러면 class1의 단일 객체 인스턴스가 항상 제공됩니다.

은 다음과 시도 -

public class Class1 
{ 
    private String number = null; 
    private static Class1 class1 = null; 
    public static Class1 getInstance() 
    { 
     if(class1 == null) 
      { 
       class1 = new Class1(); 
      } 
     return class1; 
     } 

    private Class1(){} 

    public void setNumber(String number) 
    { 
     this.number = number; 
    } 

    public String getNumber() 
    { 
     return this.number; 
    } 
} 

public class Class2 
{ 
    Class1 cla = Class1.getInstance(); 
    public String number_to_compute = cla.getNumber(); 
} 

public class Class3 
{ 
    static Class1 class1 = Class1.getInstance(); 

    public static void main(String args[]) { 

    class1.setNumber("123"); 
    Class2 class2 = new Class2(); 
    System.out.println(class1.getNumber()); 
    System.out.println(class2.number_to_compute); 
    } 
} 

는 희망이 도움이 ... :)

+0

난 아직도 널 얻고있다. – Prabhath

+0

@Prabhath 당신이 그걸 세터라고 부를 때 저에게 먼저 말해 줄 수 있겠습니까 ?? –

+0

@Prabhath 한 번 업데이트 된 답변을 시도하고 내게 알려주십시오 ... –

관련 문제