• 用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关注的朋友有
    ",this.name);
            for(int i = 0; i < friendNumber;i++) {
                User uu =  friendsList[i];
                uu.display();
            }
            System.out.println();
        }
    
        void displayFans() {
            System.out.printf("%s的粉丝有
    ",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	, 消息: %s
    ",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();
    
        }
    }
    


  • 相关阅读:
    WebPlayer9电影整站系统第三方电影批量添加工具
    Delphi执行SQL提示“不正常地定义参数对象”,“提供了不一致或不完整的信息”错误
    IIS控制大全
    Redis慢查询日志
    Redis短结构
    分布式AKF拆分原则
    Redis分片
    Redis的bitmap从基础到业务
    什么是CAP?
    Redis面试题
  • 原文地址:https://www.cnblogs.com/zhangmingzhao/p/7256682.html
Copyright © 2020-2023  润新知