把其他自定义类作为属性
Dog宠物狗
/**
* 宠物狗
*/
public class Dog {
private String name; //名字
//构造器
public Dog() {
}
public Dog(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Person人类
/**
* 人类
* 属性
* 姓名
* 拥有宠物狗
*
* 行为
* 领养狗
* 给狗起名字
* 介绍自己的宠物狗
*/
public class Person {
private String name; //姓名
private Dog dog; //宠物
/**
* 领养狗
* @param dog
*/
public void adoptDog(Dog dog){
System.out.println(this.name+"领养了"+dog.getType()+"品种的狗");
//把要领养的狗,设置到人类属性中
this.dog=dog;
}
/**
* 给宠物狗起名字
*/
public void giveName(){
//健壮性处理
if(this.dog==null){
System.out.println("-->警告:勇敢的少年啊,快去领养一条宠物狗吧");
return;
}
System.out.println("-->请输入宠物狗的新名字:");
String dogName = new Scanner(System.in).next();
//this.dog就代表当前这个人类的宠物狗属性
this.dog.setName(dogName);
}
/**
* 介绍自己的宠物狗
*/
public void say(){
System.out.print("我叫"+name+",我有一条"+this.dog.getType());
System.out.println("品种的宠物狗,名字叫"+this.dog.getName());
}
//构造器
public Person() {
}
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Dog getDog() {
return dog;
}
public void setDog(Dog dog) {
this.dog = dog;
}
}
```
**测试使用**
/**
* 测试人类领养宠物狗
*/
public class Test {
public static void main(String[] args) {
//创建几个宠物狗(new运算符调用Dog类构造器来创建对象)
Dog d1 = new Dog("中华田园犬");
Dog d2 = new Dog("哈士奇");
Dog d3 = new Dog("萨摩耶");
Dog d4 = new Dog("边境牧羊犬");
Dog d5 = new Dog("藏獒");
//创建人类
Person p1 = new Person("小明");
Person p2 = new Person("小李");
//领养狗
p1.adoptDog(d2);
p1.giveName();
p1.say();
p2.adoptDog(d3);
p2.giveName();
p2.say();
}
}