java - 对方法的返回类型感到困惑

标签 java methods return-value

<分区>

任何人请解释为什么我们首先返回值。 我的意思是方法返回的值改变了实例变量?或者它会更改对象访问的实例变量的副本?

有什么好的链接可以帮助我理解从方法返回值的目的吗?

我有两个类(class):

Phone.java

class Phone{
    double weight; //instance variable

    void setWeight(double val) { // method talking double value but not returning
        weight = val;
    }
    double getWeight(){ //method returning double value
         return weight;
    }
}

测试.java

class Test{
    public static void main(String args [] ) {

    Phone phone = new Phone();


    double newWeight = p.getWeight();
    double newWeight3 = p.setWeight;

    int newWeight2 = p.getWeight();
    }
}

我的问题是:

  • 方法 setWeight 在参数中使用 double val 但不返回值,因此类中的实例变量 weight 没有变化电话..对吗?

  • 方法 getWeight 正在将值返回给权重,但我们没有将任何参数传递给方法 getWeight!!

  • 需要对这些方法中的任何一个进行哪些更改,以便我们可以通过返回值进行分配?

最佳答案

我们将值传递给 setter 方法,因为它们需要将一些值设置到其他字段(通常是类中的字段)。我们不期待任何东西被退回。该方法仅用于设置值。

我们不向 getter 传递值,因为我们知道调用 getter 的实例,因此知道要获取什么值。由于我们需要一些返回值,因此我们返回该值。

关于java - 对方法的返回类型感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29645886/

相关文章:

Java - 如何创建具有水平和垂直标题的 jlist 或 jtable?

java - 如何实现这样的流量

java - 如何从 Java 调用 groovy 类的方法 - 字符串格式的方法名称和参数

iphone - 从函数返回多个值

c - C如何返回一个结构?

ruby - 明确返回函数值的好习惯?

java - 我们可以使用 Spring Boot 对 Nodejs 应用程序进行身份验证吗?

ruby-on-rails - 从 Rake 文件中的任务调用方法

java - 在没有 JConsole 的情况下使用 JMX 执行方法

java - 具有 AsynchronousServerSocketChannel 的多线程服务器