黑马程序员技术交流社区

标题: 类与类之间的组合关系习题 [打印本页]

作者: _J2EE_LiXiZhen    时间: 2017-11-6 22:41
标题: 类与类之间的组合关系习题
题目要求:
请用代码描述: 38岁的白百合有一部价值为8000元的iPhone的手机,她在使用者部手机给羽凡打电话
操作步骤描述:
定义手机类
a)成员变量
i.品牌 brand
ii.价格 price
b)成员方法
i.打电话  public void call(String name)
c)要求
i.提供无参和带参构造
ii.提供setXxx和getXxx方法
2.定义Person类
a)成员变量
i.姓名(name)
ii.年龄(age)
iii.手机(Phone)
b)成员方法: 打电话: public void callTo(Person p)  使用自己的手机给指定的人打电话
i.在方法内部调用手机的call(String name) 方法,给传入的人打电话
c)要求:
i.提供无参和带参构造
ii.提供setXxx和getXxx方法
3.定义测试类Test
a)提供main方法
b)在main方法中
i.使用带参构造创建手机对象 phone,品牌初始化为iPhone,价格初始化为8000
ii.使用无参构造创建Person对象 yuFan,调用setName(String name)方法,把名称设置为羽凡
iii.使用带参构造创建Person对象 baiBaiHe,名称初始化为白百合,年龄初始化为38,手机初始化,上面创建的phone对象
iv.baiBaiHe对象,调用call(Person p) 方法,传入yuFan对象
1.输出格式:  38岁的白百合使用8000元的iPhone的手机给羽凡打电话

[Java] 纯文本查看 复制代码
public class Person {
        // 姓名
        private String name;
        // 年龄
        private int age;
        // 手机
        private Phone phone;

        // 成员方法
        public void callTo(Person p) {
                System.out.println(this.age + "的" + this.name + phone.call(p.getName()));
        }

        // getters && setters
        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;
        }

        public Phone getPhone() {
                return phone;
        }

        public void setPhone(Phone phone) {
                this.phone = phone;
        }

        // 无参构造
        public Person() {
                // TODO Auto-generated constructor stub
        }

        // 全参构造
        public Person(String name, int age, Phone phone) {
                super();
                this.name = name;
                this.age = age;
                this.phone = phone;
        }
}

public class Phone {
        // 定义品牌变量
        private String brand;
        // 定义价格变量
        private double price;

        // 成员方法:打电话
        public String call(String name) {
                // 输出格式: 38岁的白百合使用8000元的iPhone的手机给羽凡打电话
                return ("正在给" + name + "打电话");
        }

        // getters && setters
        public String getBrand() {
                return brand;
        }

        public void setBrand(String brand) {
                this.brand = brand;
        }

        public double getPrice() {
                return price;
        }

        public void setPrice(double price) {
                this.price = price;
        }

        // 无参构造
        public Phone() {
                // TODO Auto-generated constructor stub
        }

        // 有参构造
        public Phone(String brand, double price) {
                super();
                this.brand = brand;
                this.price = price;
        }
}

public class Test {
        public static void main(String[] args) {
                // 使用带参构造创建手机对象 phone,品牌初始化为iPhone,价格初始化为8000
                Phone phone = new Phone("iPhone", 8000);

                // 使用无参构造创建Person对象 yuFan,调用setName(String name)方法,把名称设置为羽凡
                Person yuFan = new Person();
                yuFan.setName("羽凡");

                // 使用带参构造创建Person对象 baiBaiHe,名称初始化为白百合,年龄初始化为38,手机初始化,上面创建的phone对象
                Person baiBaiHe = new Person("白百何", 38, phone);

                // baiBaiHe对象,调用call(Person p) 方法,传入yuFan对象
                baiBaiHe.getPhone().call(yuFan.getName());

                //输出格式:  38岁的白百合使用8000元的iPhone的手机给羽凡打电话
                baiBaiHe.callTo(yuFan);
        }
}






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2