1.3 Java面向对象——对象可作为方法参数传递及方法的返回类型

Java面向对象——对象可作为方法参数传递及方法的返回类型

代码演示:对象可作为方法参数传递

  • 对象看作一个地址(整体),地址中包含着对象的姓名及年龄…
package opp;

public class Student {
    String name;
    int age;
    
    public void eat(){
        System.out.println("吃饭!");
    }
    public void run(Student student){		// 4.  student对象的地址:0x11
        System.out.println(student.age+"岁的"+student.name+"喜欢运动!");
    }
}

package opp;

public class StudentTest {
    public static void main(String[] args) {
        Student stu = new Student();		// 1.  在堆中开辟空间,对象名就是地址。假设对象 stu的地址:0x11
        
        stu.name = "Java";					// 2.1 0x11 这块空间存放着对象的成员变量及方法
        stu.age = 28;						// 2.2 将默认属性进行赋值
        
        stu.eat();							// 3.1 调用无参成员方法
        stu.run(stu);						// 3.2 调用有参成员方法
        									// (前者stu是对象。传参stu的地址:0x11,里面包含了成员属性及方法)
    }
}

代码演示:对象可作为方法的返回类型

  • 方法的类型与方法返回值的类型保持一致
package opp;

public class Student {
    String name;
    int age;
    
    public void eat(){
        System.out.println("吃饭!");
    }
    public void run(Student student){		// 4.  student对象的地址:0x11
        System.out.println(student.age+"岁的"+student.name+"喜欢运动!");
    }
}

package opp;

public class StudentTest {
    public static void main(String[] args) {
        Student stu = new Student();				// 1. 在堆中开辟空间。假设对象 stu的地址:0x11
        method(stu);								// 2. 调用方法并传递地址(stu):0x11
    }
    public static Student method(Student stu){		// 3. 该方法的类型是Student,其中形参地址:0x11
        stu.name = "Java";							
        stu.age = 28;
        stu.eat();									// 4. 与代码(对象可作为方法参数传递)同理
        stu.run(stu);
        return stu;									// 5. 返回值类型与方法类型必须相同
    }
}

程序运行效果

吃饭!
28岁的Java喜欢运动!
上一篇:C语言-学生管理系统(结构体+数组实现)


下一篇:k8s 调度不均匀问题解决