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喜欢运动!