java中返回值的含义?

Aay*_*jan 1 java return return-value

我是一名初学者,我正在观看youtube上的教程,导师讲了各种方法.他谈到了在java中返回值,但我对此并不了解.我将首先分享脚本,然后分享我的想法和疑问.

这是class1脚本:

import java.util.Scanner;
class class1{
public static void main(String args[]){
    System.out.println("This is class1.");
    Scanner x = new Scanner(System.in);
    System.out.print("Please enter the name of your first gf here:");
    String name = x.nextLine();

    class2 class2obj = new class2();
    class2obj.setname(name);
    class2obj.tellname();
}
}
Run Code Online (Sandbox Code Playgroud)

你可以看到它有主要方法,它的作用是:它首先要求你的第一个女朋友的名字然后将它存储在变量中name.然后它链接我将在此之后共享的class2脚本,并在class2中执行setname方法.

class2脚本是:

class class2{
    private String girlname;
    public void setname(String name){
    girlname = name;
}
public String returnname(){
    return girlname;
}
public void tellname(){
    System.out.printf("your first girlfriend was %s",returnname());
}
}
Run Code Online (Sandbox Code Playgroud)

class2,我可以看到该setname方法将值设置name为私有变量girlname但我的问题是它返回什么?为什么我们需要这个returnname方法?这对于方法间变量是绝对必要的吗?另外,为什么没有更多钞票归还girlnamesetname方法是什么?

我不知道返回的事情,所以视频或文章会有很多帮助.而且,这就是你发现我上面说的奇怪的原因.

另外,请告诉我returnname方法和tellname方法的作用.

另外,class1我们执行了class2obj.tellname为什么不执行class2obj.returnname

我现在真的很困惑所以请不要介意我是否表现得很傻.

JB *_*zet 6

首先,如果你给出的代码实际上是教程中使用的代码,那么选择另一个教程.它甚至不尊重标准的Java命名约定.

然后,回答你的问题.对象是状态(字段)和行为(方法)的混合.某些方法会修改对象的状态.某些方法允许您访问对象的状态.一些方法允许两者兼顾.有些方法使用对象的状态和其他对象来做一些有用的事情.

该方法void setName(String name)不返回任何内容.如果它有一个javadoc注释,并且如果明智地选择了类和方法名称,则此注释会说:

/**
 * Sets the name of this GirlFriend object. Replaces the previous name of
 * the girl friend with the new name given as argument
 */
public void setName(String newName) {
    this.name = newName;
}
Run Code Online (Sandbox Code Playgroud)

此方法修改对象的状态,不需要返回任何内容.它的职责是更改名称,而不是其他任何名称.返回新名称不起任何作用,因为调用者已经知道它:它将它作为参数传递.

稍后,您可能有兴趣知道女朋友的名字:

/**
 * Returns the name of this GirlFriend object
 */
public String getName() {
    return this.name;
}
Run Code Online (Sandbox Code Playgroud)

这个方法不需要任何参数:它允许向女朋友询问她的名字,并且该方法返回名称作为答案.

我会带一本好书,或者使用官方Java教程来了解更多信息.