阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】以下Java代码实现一个简单的聊天室系统(ChatRoomSystem),多个用户(User)可以向聊天室(ChatRoom)发送消息,聊天室将消息展示给所有用户。类图如图5—1所示。
【正确答案】正确答案:(1)mis.name (2)ChatRoom.showMessage (3)user.sendMessage (4)new ChatRoomSystem0 (5)new User
【答案解析】解析:本题考查Java语言程序设计的能力,涉及类、对象、对象方法和静态方法的定义和使用。要求考生根据给出的案例和代码说明,认真阅读理清程序思路,然后完成题目。题目所给代码较短,较易理清思路。 先考查题目说明,实现一个简单的聊天室系统(ChatRoomSystem),多个用户(User)可以向聊天室(ChatRoom)发送消息,聊天室将消息展示给所有用户。根据说明进行设计,题目说明中图5-1的类图给出了类ChatRoomSystem、User、ChatRoom之间的关系。ChatRoom作为中介器,处理User对象之间的所有消息交互,即User向ChatRoom发送消息,ChatRoom负责将消息显示给所有的User对象。User对象使用ChatRoom的方法分享其消息。 ChatRoom中定义了一个静态方法,即类方法,使所有调用者直接通过类来访问此方法,无须创建对象。静态方法用关键字static修饰,参数接收User对象和消息内容,加以显示。 public static void showMessage(User user, String message) {…} 在Java中,static方法直接通过类名ChatRoom来访问,即: ChatRoom.showMes sage(…) User类中定义私有属性name及其get和set方法,通过User类的构造器创建对象,赋给新建对象的name属性值。构造器参数和对象的属性区分方式用this关键字。User类的对象发送消息时提供对象自身,用this表示,以及消息内容,字符串表示,调用ChatRoom中的静态方法showMessage,即: ChatRoom.showMessage(this, message); ChatRoomSystem类实现聊天室系统,包含入口方法main,实现启动初始化聊天和聊天过程中加入新聊天用户(聊天过程中的退出等实现类似)。在main方法中,创建ChatRoomSystem对象,然后调用startup方法(crs.startup()),初始化加入一些用户(字符串用户名:“John”和“Leo”)并发送问候消息,即: User zhang=new User(“John”); USer]i=new USer(“Leo”); zhang.sendMessage(“Hi!Leo!”); li.sendMessage(“Hi!John!”); 调用join方法加入(crs.join)用户“Wayne”,并由此用户对象发送问候消息,即: user.sendMessage(“Hello Everyone!I am”+user.getName()); Java中创建对象采用new关键字,如果类中没有定义构造器,则编译器会自动创建一个不带参数的缺省构造器。ChatRoomSystem中没有定义构造器,所以对象创建方式为: new ChatRoomSys tem() User的对象创建为: new User(字符串用户名) 综上所述,空(1)需要标识当前对象的name属性,即this.name:空(2)调用类ChatRoom的静态方法showMessage,即ChatRoom.showMessage:空(3)需要表示user对象调用发送消息的方法sendMessage,即user.sendMessage:空(4)需要用new关键字调用缺省构造器,即new ChatRoomSystem();空(5)处为采用new关键字调用User类的构造器方法创建User类的对象,即new User。