【问题标题】:Please explain gettersetter_method from this method请从这个方法解释gettersetter_method
【发布时间】:2016-05-28 11:44:04
【问题描述】:

我有一个与 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 作为值的地方。

【问题讨论】:

    标签: java getter-setter


    【解决方案1】:

    这里我得到 null 作为值

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

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

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

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

    public getter getmethod(){
    

    所以你可以这样做

    getter g=s.getmethod(); 
    

    【讨论】:

    • 我这样做了,但它表明你需要 15 声望才能发布它..如何获得该声望?我只有 8 个。
    • 据我所知,这是为了用箭头投票。您可以随时接受您提出的问题
    【解决方案2】:

    您必须检查 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 和 setter 方法以及您的变量按照约定命名。

    【讨论】:

    • 很棒的哥们...它完美的工作,我肯定会更改类的名称(感谢表示命名约定)..感谢伟大的回应...
    • 如果这回答了您的问题,请通过单击此答案左侧的复选标记将其作为答案。
    • 我这样做了,但它表明你需要 15 声望才能发布它..如何获得该声望?我只有 8 个。
    • 您将通过回答问题或提出有趣的问题来获得 :)。我刚刚放弃了你的投票,这让你到了 13 岁。你需要更多...当你有足够的时候回来看看 - 干杯。
    猜你喜欢
    • 2013-03-31
    • 2019-11-27
    • 2013-03-19
    • 1970-01-01
    • 2017-04-06
    • 2013-11-19
    • 1970-01-01
    • 2018-04-02
    • 1970-01-01
    相关资源
    最近更新 更多