Java 面向对象 之 对象引用 this的引用-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

Java 面向对象 之 对象引用 this的引用

简介:

http://www.verejava.com/?id=16992770416239

/**
    对象与对象, this的引用
    题目:我把书借给朋友,朋友看完归还书
    思路:
        1. 从题目的名词找出对应的类 朋友(Friend) ,我(Person),书(Book)
        2. 找出类与类之间的关系 书是属于我的  Book->Person
           朋友是属于我的朋友 Friend->Person 但是必须经过我的同意才能成为我的朋友
        3. 通过2就可以知道 a->b 就在 b中要添加一个a 的引用对象
        4. 从题目的动词 抽象出 方法  借给(lend) Book->Friend
*/
public class Refenrence1 {
    
    public static void main(String[] args) {
        //实例化我的对象
        Person p = new Person();
        p.setName("胡杨");
        //实例化一本java编程书籍,并添加到我里面
        p.setBook(new Book("Java编程书籍"));
        //打印我拥有的书籍名称
        System.out.println(p.getName() + " 拥有一本 " + p.getBook().getBookName());

        //实例化一个朋友对象
        Friend friend = new Friend();
        friend.setName("李阳");

        //将李阳设置成我的朋友,当然我也成为李阳的好朋友
        p.setFriend(friend);

        //打印我的好朋友
        System.out.println("我的好朋友是 : " + p.getFriend().getName());

        //然后把书借给朋友
        p.lendBook();

        //朋友打印拥有的书籍
        System.out.println(friend.getName() + " 也可以读 " + friend.getBook().getBookName() + " 了");

        //归还书籍
        friend.setBook(null);
        //打印我拥有的书籍名称
        System.out.println(friend.getName() + " 也可以读 " + friend.getBook().getBookName() + " 了");
        System.out.println(p.getName() + " 拥有一本 " + p.getBook().getBookName());

        //然后我检查一下我的书籍发现李阳把书弄坏了,断绝朋友关系
        p.setFriend(null);
        System.out.println("我的朋友是: " + p.getFriend());
    }
}

class Friend {
    
    private String name;
    private Book book;//借给我的书的引用
    private Person person;//我也是朋友的好朋友

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Book getBook() {
        return book;
    }

    public void setBook(Book book) {
        this.book = book;
    }

    public Person getPerson() {
        return person;
    }

    public void setPerson(Person person) {
        this.person = person;
    }
}

class Person {
    
    private String name;
    private Book book;//book属于我,添加一个Book对象的引用
    private Friend friend; //friend是我的朋友, 添加一个Friend对象引用

    //把书借给朋友
    public void lendBook() {
        friend.setBook(book);
    }

    public String getName() {
        return this.name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Book getBook() {
        return this.book;
    }

    public void setBook(Book book) {
        this.book = book;
    }

    public Friend getFriend() {
        return this.friend;
    }

    public void setFriend(Friend friend) {
        //你是我的好朋友
        this.friend = friend;
        //我也是你的好朋友
        friend.setPerson(this);
    }
}

class Book {
    
    private String bookName;

    public Book(String bookName) {
        this.bookName = bookName;
    }

    public String getBookName() {
        return this.bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }
}

http://www.verejava.com/?id=16992770416239

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章