大概功能:
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();
}
}