JAVA有关类的问题

类名作为返回值的意义在哪

img


这个的输出是学生学习

img


跟这一种结果是一样的
我想不通类名作为返回值的意义在哪
他直接new Student 类不是更省力吗
类名作为方法倒是很好理解,作为返回值我总感觉怪怪的
话说,创建对象的过程不就是在开辟空间么,为啥返回值的情况下不用实例化呢

你这个getStudent方法整体意思是

// 创建一个返回Student对象的方法
public StudentgetStudent(){
        // 创建一个Student对象s
        Student s=new Student()
        // 返回新对象s
        return s
}
       

这个要看具体场景吧
你这个代码中这样确实没有更多的意义
如果像下面这样写,就能确保每次都能拿到同一个Student

public Teacher{
    Student student = null;
    public Student getStudent(){
        if (student == null){
            student = new Student();
        }
        return student;
    }
}

举个场景,一般这种返回返回类型都是一个接口,Teacher返回的是这个接口的实现类,至于这个实现类里咋写的你不用管,你只要根据接口提供的方法来调用就行了,多态。
编程是个多方工程,当你调用第三方提供的sdk或者接口时就会有这种问题,你不需要关注别人咋实现的,拿过来用就行。

这是习题啊,在教你怎么把一个类当做参数或者返回值
就像你学小学数学,肯定是从1+1开始学起啊
你总不能觉得学1+1没有用吧