用Java面向对象思想实现一个微博的功能(未完)

大概功能:


1.用户,用户有关注的朋友,被关注的是粉丝,关注和被关注有交互。

2.发送状态消息的功能,状态消息有回复功能

3.消息,回复,关注,粉丝的打印

4............等


第一次真正的感受都面对对象编程的魅力,对This引用有了进一步的认识,想到以前学习C++时的面对对象,C++中里面也有个个This指针,Java真的是继承了C++的诸多优点。

 

class User {
    //成员变量
    String name;
    String password;

    Msg[] msgList;
    Reply[] replyList;

    int msgSize = 0;

    User[] friendsList;
    int friendNumber;

    User[] fansList;
    int fansNumber = 0;
    //构造方法
    User(String name) {
        this.name = name;
        password = "123456";
        msgList = new Msg[10];
        replyList = new Reply[10];

        friendsList = new User[10];
        fansList = new User[10];
    }

    //成员函数
    void sendMsg(String content) {
        //这里的this是当前对象的,谁调用了这个方法
        Msg msg = new Msg(content,this);//User u1,u1.sendMsg,则当前对象就是u1,this这里等于u1.name。
        msgList[msgSize] = msg;
        msgSize++;
    }

    void displayMsgList() {
        for(int i = msgSize - 1; i >= 0; i--) {
            Msg m = msgList[i];
            m.display();
        }
    }

    void display() {
        System.out.println(this.name);
    }

    void addFriend(User u) {
        friendsList[friendNumber++] = u;
        u.fansList[u.fansNumber++] = this;//this 就是一个对象,类似User u1的u1
    }

    void displayFriends() {
        System.out.printf("%s关注的朋友有\n",this.name);
        for(int i = 0; i < friendNumber;i++) {
            User uu =  friendsList[i];
            uu.display();
        }
        System.out.println();
    }

    void displayFans() {
        System.out.printf("%s的粉丝有\n",this.name);
        for(int i = 0; i < fansNumber; i++) {
            User uu =  fansList[i];
            uu.display();
        }
        System.out.println();
    }
}

class Msg {
    String content;
    User author;
    Reply[] replyList;
    int replySize;

    Msg(String content,User author) {
        this.content = content;
        this.author = author;
        replyList = new Reply[10];
        replySize = 0;
    }

    void display() {
        System.out.printf("作者: %s\t, 消息: %s\n",author.name,content);
    }


}

class Reply {
    String content;
    User author;
    Msg msg;

}

class App_weibo {
    public static void main(String[] args) {
        User u1 = new User("Bob");
        User u2 = new User("Alice");
        User u3 = new User("路人甲");
        User u4 = new User("Jack");
        User u5 = new User("Jim");
        u1.sendMsg("今天晚上有cf");
        u1.sendMsg("cf很闲的");
        u2.sendMsg("草泥马,凌晨叫晚上?");
        u2.sendMsg("我就是听了你的话才变成秃头的!");
        u3.sendMsg("大...大佬?!....萌新瑟瑟发抖");

        System.out.println(u1.msgSize);
        System.out.println(u2.msgSize);
        System.out.println(u3.msgSize);
        System.out.println();

        u1.displayMsgList();
        u2.displayMsgList();
        u3.displayMsgList();
        System.out.println();

        u1.addFriend(u2);
        u1.addFriend(u3);
        u2.addFriend(u4);
        u2.addFriend(u5);
        u3.addFriend(u5);

        u1.displayFriends();
        u3.displayFans();
        u3.displayFriends();
        u5.displayFans();

    }
}


posted @ 2017-02-10 16:00  Lawliet__zmz  阅读(260)  评论(0编辑  收藏  举报