Java中如何运用return

import java.time.*;

/**
 * This program tests Employee class.(这个程序测试Employee类)
 * @version 11.27 2021-08-16
 * @author Cay Horstman
 */
public class EmployeeTest
{
    public static void main(String[] args)
    {
        //fill the staff array with three Employee objects(用三个Employee对象填充staff数组)
        Employee[] staff = new Employee[3];

        staff[0] = new Employee("Carl Cracker",75000,1987,12,15);
        staff[1] = new Employee("Harry Hacker",50000,1989,10,1);
        staff[2] = new Employee("TonyTester",40000,1990,3,15);

        //raise everyone's salary bu 5%(提高每个员工5%的工资)
        for (Employee e : staff)
            e.raiseSalary(5);

        //print out information about all Employee objects(打印所有Employee对象的相关信息)
        for (Employee e : staff)
            System.out.println("name=" + e.getName() + ",salary=" + e.getSalary() + ".hireDay=" + e.getHireDay());
    }
}

class Employee
{
    private String name;
    private double salary;
    private LocalDate hireDay;

    public Employee(String n,double s,int year,int month,int day)
    {
        name = n;
        salary = s;
        hireDay = LocalDate.of(year,month,day);
    }
    public String getName()
    {
        return name;
    }
    public double getSalary()
    {
        return salary;
    }
    public LocalDate getHireDay()
    {
        return hireDay;
    }
    public void raiseSalary(double byPercent)
    {
        double raise = salary * byPercent / 100;
        salary += raise;
    }
}

既然在上面已经对n、s、year、month、day等已经进行了定义,为什么后面还要使用return,return的具体作用是干嘛的(并不仅限与本篇代码)

return是返回的意思,在Java中定义的方法如果有返回值,比如public String getName(),需要返回String类型,那么getName方法里需要return一个String类型的值。

你问的其实是两个问题
1.return是和函数绑定的,只有在函数定义中才能使用,在函数中使用return来作为该函数被调用时的返回值
2.为什么要写一个函数返回已经定义的对象,这是面向对象的特性——封装
首先注意到变量的访问权限是private,说明只能通过定义的函数来对变量进行修改,这也是我们在java中实现封装的手段,因为如果你salary不是private,别人直接tom.salary=-100,直接把tom的工资设置为负数了,这显然不合理,所以封装提供了一种更加安全的变量访问方式,你不能直接修改变量,而是通过我提供的函数操作,这样我就可以限制你的非法操作。
当然这只是封装的一个优点,事实上封装的目的是为了解耦合,这是面向对象设计的主要思想,就不展开说了

(1)返回方法指定类型的值(这个值总是确定的),也可以是对象 例如定义一个方法 具有返回值 return i代表方法执行结束 把这个值吐出去
(2)方法的结束 例如main方法直接return 代表直接结束
两种形式:(1)有返回类型 例如:return i;
(2)无返回类型 return;
一般方法前有void代表无返回值,没有void有返回值。

    //这几个属性都是私有的
    private String name;
    private double salary;
    private LocalDate hireDay;

    //new 新建对象时,通过构造方法给私有属性赋值了
    public Employee(String n,double s,int year,int month,int day)
    {
        name = n;
        salary = s;
        hireDay = LocalDate.of(year,month,day);
    }

    //定义几个get方法,给外部访问私有的属性
    //name是String类型的, 所以get方法前要用String
    public String getName()
    {
        return name;
    }
    public double getSalary()
    {
        return salary;
    }
    public LocalDate getHireDay()
    {
        return hireDay;
    }

    //外部需要访问Employee类的对象e的私有属性,需要通过定义的get方法访问
    //程序运行并不能像我们看到的一样,上面定义了,这里也不能直接用,要通过对象去访问
    for (Employee e : staff)
            System.out.println("name=" + e.getName() + ",salary=" + e.getSalary() + ".hireDay=" + e.getHireDay());
    
    //  举个例子,把学生的姓名各种信息,成绩打印在一张纸上(学生的属性),然后装入档案袋(学生对象),再放到书架上(程序分配的内存);
    //需要查询学生的信息,就要从书架(内存)找到对应的档案袋(对象)