使用构造方法和匿名对象接受引用数据类型的例子:
package com.mydemo;
// 创建一个“PersonDemo”类
public class PersonDemo {
public static void main(String args[]) {
Person per = new Person(new Message("张三"), 18); // 声明并实例化对象
per.tell(); // 进行方法的调用
Message msg = per.getMessage(); // 获取Message对象
System.out.println(msg.getInfo()); // 获取信息内容
}
}
// 定义一个“人”类
class Person {
private String name; // 【成员属性】人的姓名
private int age; // 【成员属性】人的年龄
// 【构造方法重载】定义双参构造方法
public Person(Message msg, int temAge) {
name = msg.getInfo(); // name属性初始化
age = temAge; // age属性初始化
}
// 返回Message对象
public Message getMessage() {
// 返回匿名对象
return new Message("Message类里的---姓名:" + name + "、年龄:" + age);
}
/**
* 定义一个信息获取的操作方法,此方法可以输出属性内容
*/
public void tell() {
System.out.println("Person类里的---姓名:" + name + "、年龄:" + age);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
//定义一个“信息”类
class Message {
private String info;
// 【构造方法重载】定义单参构造方法
public Message(String temInfo) {
info = temInfo;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
运行结果:
Person类里的---姓名:张三、年龄:18
Message类里的---姓名:张三、年龄:18