第一种、假设老师类持有学生类,学生类持有宠物类,并为学生类添加一个遛狗的方法
public class Test2 {
public static void main(String[] args) {
Dog dog = new Dog("二哈","灰色");
Student student = new Student("王小二",dog);
Teacher teacher = new Teacher();
teacher.name = "王老师";
teacher.student = student;
System.out.println(teacher.toString());
}
}
class Teacher{
public String name;//姓名
public Student student;//老师持有学生
@Override
public String toString() {
return "Teacher{" +
"name='" + name + '\'' +
", student=" + student.name + " "+ student.play() +
'}';
}
//无参构造函数
public Teacher(){
}
//有参构造函数
public Teacher(String name, Student student) {
this.name = name;
this.student = student;
}
}
class Student{
public String name;//姓名
public Dog dog;//学生持有宠物
//构造函数
public Student(String name, Dog dog) {
this.name = name;
this.dog = dog;
}
//遛狗的方法
public String play(){
return this.dog.toString();
}
}
class Dog{
public String name;//姓名
public String color;//颜色
@Override
public String toString() {
return "Dog{" +
"name='" + name + '\'' +
", color='" + color + '\'' +
'}';
}
//构造函数
public Dog(String name, String color) {
this.name = name;
this.color = color;
}
}第二种、假设有丈夫和妻子两个类,其中丈夫和妻子是一对一关系。
特别注意:如果是相互持有的关系,每一个类中不能写全参的构造函数,将相互持有的对象采用对象.属性的方式进行给出。
public class Test1 {
public static void main(String[] args) {
Husband h = new Husband("张三","四川成都");
Wife w = new Wife("赵燕","云南保定");
h.wife = w;
w.husband = h;
System.out.println(h.toString());
System.out.println(w.toString());
}
}
//定义丈夫类
class Husband{
public String name;
public String address;
public Wife wife;
@Override
public String toString() {
return "丈夫{" +
"姓名:'" + name + '\'' +
", 妻子:" + wife.name +
", 地址:'" + address + '\'' +
'}';
}
public Husband(String name, String address){
this.name = name;
this.address = address;
}
public Husband(){
}
}
//定义妻子类
class Wife{
public String name;
public String address;
public Husband husband;
@Override
public String toString() {
return "妻子{" +
"姓名:'" + name + '\'' +
", 丈夫:" + husband.name +
", 地址:'" + address + '\'' +
'}';
}
public Wife(String name, String address){
this.name = name;
this.address = address;
}
}版权声明:本文为qq_53218512原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。