请从这个方法解释gettersetter_method

时间:2016-05-28 11:44:05

标签: java getter-setter

我有一个与getter和setter概念相关的小程序,由于我不理解的原因,我得到null值。这是我的代码,我需要在单个对象中传递多个字符串:

public class simple {

    public Object getmethod(){
        getter s=new getter();
        String app="apple";
        s.setApp(app);      
        String ble="blue";
        s.setGrp(ble);
        String re="grape";
        s.setGrp(re);           
        return s;
    }
}

这是getter方法:

public class getter {
    String app;
    String org;
    String  grp;
    String mn;

    public String getApp() {
        return app;
    }

    public void setApp(String app) {
        this.app = app;
    }

    public String getOrg() {
        return org;
    }

    public void setOrg(String org) {
        this.org = org;
    }

    public String getGrp() {
        return grp;
    }

    public void setGrp(String grp) {
        this.grp = grp;
    }
}

以下是测试类:

public class Check {

    public static void main(String[] args) {
        simple s=new simple();
        getter g=new getter();
        s.getmethod();
        String first=g.getApp();
        String second=  g.getGrp();
        String third=g.getOrg();
        System.out.println("the value 1st is " + first + "the second" + 
                              second +"3rd is"+third);
    }    
}

这是我将null作为值的地方。

2 个答案:

答案 0 :(得分:0)

你必须检查java naming convention的类,方法和变量名称,

问题在于main方法中的代码,您没有使用getmethod()返回的引用。相反,你正在实例化另一个getter实例。

public class Check {
    public static void main(String[] args) {
        simple s=new simple(); 
        // you may avoid cast to getter by changing return type of 
        // method getmethod() from Object to getter. 
        getter g=(getter)s.getmethod(); // cast is necessary 
        String first=g.getApp();
        String second=  g.getGrp();
        String third=g.getOrg();
       System.out.println("the value 1st is " + first + "the second" + second +"3rd is"+third);
    }    
}

根据java naming convention,请为您的课程命名如下:

  • getter - > Getter
  • 简单 - >简单
  • 您的getter和setter方法以及您的变量按照约定命名。

答案 1 :(得分:0)

  

这里我的值为null

您正在打印尚未设置的new getter变量,因此它们都为空。

单独s.getmethod()将调用该方法,并创建一个新的getter(与您之前创建的getter不同),但不返回任何内容,因此您需要一个赋值。

getter g=(getter)s.getmethod(); 

如果您不想进行强制转换,请更改方法以返回getter而不是Object

public getter getmethod(){

所以你可以做到

getter g=s.getmethod();