Java期末考试复习资料.docx

上传人:牧羊曲112 文档编号:3159681 上传时间:2023-03-11 格式:DOCX 页数:24 大小:49.90KB
返回 下载 相关 举报
Java期末考试复习资料.docx_第1页
第1页 / 共24页
Java期末考试复习资料.docx_第2页
第2页 / 共24页
Java期末考试复习资料.docx_第3页
第3页 / 共24页
Java期末考试复习资料.docx_第4页
第4页 / 共24页
Java期末考试复习资料.docx_第5页
第5页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Java期末考试复习资料.docx》由会员分享,可在线阅读,更多相关《Java期末考试复习资料.docx(24页珍藏版)》请在三一办公上搜索。

1、Java期末考试复习资料事件处理机制中包含以下3 个部分事件源、事件对象和事件监听器,JAVA2 的事件处理模型被称为委托事件处理模型。JAVA线程在其生命周期中会处在不同的状态,包括运行、暂停、同步和挂起 。 创建一个名为 MyPackage 的包的语句是packge MyPackage ,该语句应该放在程序的位置为:源代码的第一行 Java 中访问限定符有public、private_、protected和default 等。 JVM 是Java Virtual Machine的缩写; AWT 是abstrac window toolkit的缩写。表示可直接对数据源进行读写操作的流称为 节

2、点流 如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet 类的子类并且存储该源程序文件的文件名为MyApplet.java如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器_javac.exe_编译该源程序文件将产生3 个文件名与类名相同而扩展名为.class 的字节码文件。JAVA语言规定object类是JAVA程序中所有类的父类,当前类的构造方法用this表示,直接父类的构造方法用_super表示。单重继承是指只有一个父类的继承;多重继承是指有一个以上父类的继承;Java 语言出于安

3、全、可靠的考虑,仅支持单重继承;但Java 语言可通过接口来实现多重继承。 简述面向对象软件开发方法的重要意义。面向对象的软件开发方法按问题论域来设计模块,以对象代表问题解的中心环节,力求符合人们日常的思维习惯,采用“对象+消息”的程序设计模式,降低或分解问题的难度和复杂性,从而以较小的代价和较高的收益获得较满意的效果,满足软件工程发展需要。 解释下面几个概念:1)对象:就是现实世界中某个具体的物理实体在计算机中的映射和体现,是由属性和 操作所构成的一个封闭整体。2)实例:是对象在计算机内存中的映像。3)类:是描述对象的“基本原型”,是描述性的类别或模板,即对一组对象的抽象。 它定义一组对象所

4、能拥有的共同特征,用以说明该组对象的能力与性质。 4)消息:消息是对象之间进行通信的一种数据结构。5)封装:封装性是保证软件部件具有优良的模块性的基础。面向对象的类是封装良好的模块,类定义将其说明与实现显式地分开,其内部实现按其具体定义的作用域提供保护。6)继承:继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。7)多态:多态性是指一个名字具有多种语义,即指同一消息为不同对象所接受时,可以导致不同的操作。 对象“汽车”与对象“小汽车”是什么关系,对象“汽车”与“轮胎”又是什么关系?对象“汽车”与对象“小汽车”具有继承关系,即对象“小汽车”继承了对象“汽车”。 “轮胎”是对象“

5、汽车”的一个属性,所以对象“汽车”包含“轮胎”,二者是包含关系。 简述 Java 语言的主要特点: 1简单性2面向对象3分布式4健壮性5结构中立6安全性7可移植8解释的9高性能10多线程11动态性 简述 Java 语言与 C/C+语言的主要差异:Java 基于 C+,与之有许多相似之处,但其设计更易于使用,它们之间主要差异有:1)Java 中无 CC+中最复杂并有潜在危险的指针2)Java 无 C/C+中的#include 、#define 和头文件。3)Java无C/C+中的 structure,union 及 typedef。4)Java 无 C/C+中的函数、指针和多重继承。5)Java

6、 无 C/C+中的 goto 指令。 6)Java 无 C/C+中的操作符重载(Operatior Overloading)、自动类型的转换。7)Java 系统要求对对象进行相容性检查,以防止不安全的类型转换。8)Java 语言最强大的特性之一是它的平台独立性,Java 可以处理好平台之间的移植问题。9)Java 语言中没有全局变量的定义,只能通过公用的静态的变量实现,从而减少了引起错误的地方 什么叫 Java 虚拟机?什么叫 Java 的字节码?Java 虚拟机是一个软件系统,它可以翻译并运行 Java 字节码。它是 Java 的核心,保证了在任何异构的环境下都可运行 Java 程序,解决了

7、Java的跨平台的问题。Java的字节码是与平台无关的是虚拟机的机器指令。 简述 Java 程序的运行过程:首先编写 Java 源代码程序,通过 Java 虚拟机编译成.class 的字节码程序。然后通过然后再执行翻译所生成的字节代码,属于先解释后执行方式。在运行时,字节码载入器用于调入包含、继承所用到的所有类,确定内存分配,变成真正可执行的机器码。由,再通过字节码校验器就是用于检验字节码是否正确,如果通过校验,再由系统执行平 台解释执行 Java 程序分哪两类?各有什么特点?Java程序根据程序结构的组成和运行环境的不同可以分为两类:Java Application和Java Applet。

8、Java 独立应用程序是一个完整的程序,需要独立的 Java 解释器来解释执行;而 Java 小应用程序则是嵌在 Web 页面中的非独立应用程序,由Web浏览器内部所包含的 Java 解释器来解释执行,为 Web 页面增加交互性和动态性。 Java 语言对标识符命名有何规定,下面这些标识符哪些是合法的,哪些是不合法的:合法的标识符有:Myname、JavaLanguage、_is_Has 非法的标识符有:2Person、$12345 Java 有哪些基本数据类型,与 C/C+相比有何特点?复合数据类型是哪几种?基本数据类型有:整型数据类型,实数数据类型,字符数据类型和布尔数据类型。与 C/C+

9、相比,Java 的数据类型与 C+相似,但有两点不同:在 Java 语言中所有的数据类型是确定的,与平台无关,所以在 Java 中无 sizeof 操作符;Java中每种数据类型都对应一个默认值。这两点体现了Java 语言的跨平台性和完全稳定性。Java 的复合类型是由用户根据需要自己定义并实现其运算的数据类型,主要有类类型、接口和数组等 Java 的字符类型采用何种编码方案?有何特点?Java 的字符类型采用16位Unicode方式,用16位来表示东西方字符。由于采用 Unicode 编码方案,使得 Java 在处理多语种的能力方面得到大大提高,从而为 Java 程序在基于不同语种之间实现平

10、滑移植铺平了道路。 Java 有哪些运算符和表达式?请写出下面这些表达式的运算结果。 1) a%b+ 2) (a=1)&ab) 4) ( a)=1)&ab)的结果是:false 4)( a)a 的结果是:0 Java中标准输入输出使用哪种系统类、使用哪个对象和方法?通过系统类 java.lang.System 达到访问标准输入输出的功能。System 类管理标准输入输出流和错误流,有以下三个对象: 1)System.out:把输出送到默认的显示。常使用输出的方法有 print、println等。2)System.in:从标准输入获取输入。常实现输入处理的方法有 read、skip等;3)Sys

11、tem.err:把错误信息送到默认的显示。常见方法有 print、println、write等。 分析下面两个三重循环程序之间的差别,写出结果,然后上机进行检验。在三重循环1中,System.out.println语句是在三重循环之外的,输出的是count的最后的值,而三重循环2中,System.out.println语句在循环体内,输出的是每次循环后count发生变化的值。 三重循环1的运行结果是:count=54 三重循环2的运行结果是: count=20 count=34 count=54 Java 程序中字符串常量使用什么类表示?字符串变量又使用什么类来表示?它们的主要区别在哪里? 字

12、符串常量常用 java.lang.String 类表示,字符串变量常用 java.lang.StringBuffer 类来表示。它们的主要区别在于:String 对象一旦创建不会发生变化,具有只读性质;而 StringBuffer对象创建后可扩充和修改字符串对象的内容。 请说明程序“String s1=I like ;s1+=Java!;”和程序“StringBuffer s1=new StringBuffer(I like );s1.append(Java!);”的区别。根据你得出的结论,如果程序需要处理大量的字符串连接操作,应该尽量使用String类还是StringBuffer类?程序“S

13、tring s1=I like ;s1+=Java!;”中,s1 表示字符串变量,在执行第一次运算时,s1 赋值一个字符串对象“I like ”,而第二次运算,s1 被赋值另一个字符串对象“I like Java”,二次运算中赋值的对象完全不同。而对于程序“StringBuffer s1=new StringBuffer(I like );s1.append(Java!);”,变量 s1 在两次运算中始终表示一个字符串对象,只是这个字符串对 象的内容发生了变化。程序在处理大量的字符串连接操作,尽量使用 StringBuffer 类的对象来处理。这是因为 StringBuffer 对象可以扩充和

14、修改字符串对象,有利于减少系统资源的消耗 写出类的格式声明中允许使用的关键字。它们代表的含义是什么?类的格式声明允许使用的关键字有:abstract、static、final、public、class、implements 以及 extends 等。abstract 表示定义一个抽象类,static 用于定义静态嵌套类、final 定义一个最终类,public 定义一个公共类、class 表示定义一个类、implements 表示定义的类实现的接口以及用 extends 表示该类继承某类 类的成员数据的修饰符是否和类的成员方法部分相同,部分不同。请写出与成员方法不同的修饰符是哪些?它们的含义是

15、什么?类的成员数据修饰符有部分和成员方法相同,如访问控制符、static、final 等。有部分的修饰符存在不同。对于成员变量与成员方法不同的修饰符有:transient、volatile;对于成员方法与成员变量不同的修饰符有:native、abstract、synchronized 写出构造方法的定义和用途?构造方法是一种特殊的方法,它与类名同名,但不具有返回值。构造方法由用户自定义,如果没有定义系统会自动创建一个默认的无参构造方法。构造方法用于对象的创建和初始化 关键字 static 在修饰类、类的成员数据和类的成员方法中的作用各是什么?static 在修饰类时,往往修饰类中定义的嵌套类,

16、也称为静态嵌套类,提高了类的封装性。static 在修饰类的成员数据和成员方法时,表示定义一个静态成员,该成员为类成员,为该类的所有对象共享 this 关键字的含义是什么?它的主要用途有哪些? this 关键字表示当前对象。它可以实现对对象成员的访问,可以实现在构造方法内调用其他的构造方法来创建和初始化对象 写出嵌套类的分类,并加以区分:嵌套类是在一个类内定义另外一个类。根据 static 的存在性分成两大类:静态嵌套类和内部类。有 static 关键字为静态嵌套类,外部类的所有成员可以共享该静态嵌套类。无 static修饰的嵌套类为内部类。内部类必须与外部类的实例相关联,通过外部类的对象创建

17、内部类的对象实例 子类将继承父类所有的属性和方法吗?为什么?在什么情况下会出现子类对父类变量的隐藏?什么情况下出现子类对父类方法的覆盖?试举一例子类继承父类的共有和保护类型的方法和属性,但是对于父类的私有方法和属性无法继承。如果子类覆盖了父类的静态方法,父类的方法被隐藏。而覆盖是子类具有重新定义父类成员方法的能力。例如:智能手机是手机的子类,手机可以打电话,而智能手机可以具有打电话并增加传递视频信号的功能,重新定义手机打电话的功能 方法的覆盖和方法的重载有什么不同?方法的覆盖是子类重新定义父类的成员方法,这意味着子类定义的方法具有和父类的方法具有同方法名、同参数类型、同参数类型以及同返回值。而

18、方法的重载是在同一个类中定义同名方法的情况,这些同名方法除了方法名相同,但方法签名必须不同 如何创建一个List或Set对象?使用它们存放数据时哪种对象不能存放重复元素?可以使用关键字 new 调用相应构造函数创建 List 或 Set 对象。1要创建 List 对象时可使用以下方法:List list = new ArrayList;或 ArrayList arraylist = new ArrayList;或 LinkedList linkedlist = new LinkedList;等等。2要创建 Set 对象则调用相应的构造函数:HashSet hashset = new HashS

19、et; 等。|Set 定义的集合中不能包含相同的元素 列举几种可以遍历集合对象中元素的方法:可以使用 Iterator 接口定义的方法来遍历类集,或直接使用循环语句来对集合中对象进行遍历 如何向一个 HashMap 对象中添加元素?通过调用 Map 接口中定义好的 put方法可以该对象中添加相应的元素,该方法原型为 Object put(Object key, Object value);如若已经建立了一个 HashMap 对象 hashmap,则可使用 hashmap.put(“关键字”,“元素值”)来向 hashmap 对象添加元素及该元素的值 什么是代理事件处理模型?请举例说明。Java

20、 语言采用基于代理的事件处理模型。基于代理事件处理模型是引进了监听器接口,每个事件类都有相关联的监听器接口。当用户对 GUI 组件有所动作,GUI 组件会自动产生相应的事件来响应用户的动作;假设这些 GUI 组件已经注册了相关的监听器对象,监听器对象会一直监听已注册的组件对象是否有事件发生。当监听器对象监听到组件有相对应的事件发生,就会调用监听器对象中方法,即事件处理器来实现一定的动作。就这样,通过对目标监听器对象的相关 Java 方法调用,实现事件从事件源到监听者的传递 常见的事件处理方式有哪几种?请比较各种方式的特点?有通过实现监听器接口来处理事件利用独立监听器类实现事件处理利用内部类实现

21、事件处理、以及利用匿名内部类实现事件处理四种事件处理方式。特点:方法可直接对监听器接口的方法进行处理和调用,并且应用简单方便。但是,这种方式存在一个问题,由于实现接口的方法和定义类的方法处于平行定义,如果要求对多个组件有不同的处理,这种方法无疑会增加阅读程序的困难。 方法事件处理的方式优点在于,处理事件的方法清晰明了,可读性强。另外,允许扩展事件适配器来定义新的监听器的类,可以减少不需要的方法的处理。但是,在事件发生的主类中,会增加事件发生对监听器对象的方法的额外调用。方法是利用内部类来实现事件处理,具有上述两种方法的优点。但是随着发生事件的组件增多,程序会变得比较庞大,增加对程序的理解。 方

22、法是利用匿名内部类实现事件处理。有效减少代码的长度,但是利用匿名内部类更会增加程序阅读的难度 什么是编译错误?什么是运行错误?性质有什么不同?试列举你遇到的编译错误和运行错误。对于这两类的错误,分别应该如何排除?编译错误:由于编写的程序存在语法问题,未能通过源代码到目标码的编译过程产生的;运行错误:运行错误是在程序的运行过程中产生的错误。根据性质不同,运行错误还可以分为系统运行错误和逻辑运行错误。性质:没有编译错误是一个程序能正常运行的基本条件,只有所有的编译错误都改正了,源代码才可以被成功地编译成目标码或字节码;只有程序能够运行,才有可能发生运行错误。举例:编译错误:大小写错误,忘记写“;”

23、等。运行错误:死循环,数组越界等。排除方法:编译错误:Java 的编译程序一般都能给出编译错误的原因和发生错误的位置,根据这些信息排除错误,现在有些开发环境能够自动的排除一些编译错误;运行错误:要充分的依靠开发环境的 Debug 功能,利用单步测试来找出程序中的问题 请比较 Java 的异常处理机制与其它语言异常处理机制:简单比较 Java 和 C+异常处理机制:1)Java 和 C+的异常处理作用都是增加程序的健壮性,保证程序的正常运行。2)Java 的异常处理框架是 try-catch-finally,其中 finally 可有可无,若有,则一定会执行 finally 部分代码;而 C+的

24、框架是 try-catch,没有 finally 块。3)Java 的异常都是异常对象,异常类是来自于 Throwable 的子类;C+的异常可以是对象也可以是一般的基本类型 Java 异常处理机制有哪些特点?1)Java 通过面向对象的方法来处理异常,Java 中定义了很多异常类,每个异常类都代表了一种运行错误,类中包含了该运行错误的信息和处理错误的方法等内容,每当 Java 程序运行过程中发生一个可识别的运行错误时,即该错误有一个异常类与之相对应时,系统都会产生一个相应的该异常类的对象,即产生一个异常。2)Java 的异常类是处理运行时错误的特殊类,每一种异常类对应一种特定的运行错误。所有

25、的 Java 异常类都是系统类库中的 Exception 类的子类。3)对应常见的错误,Java 定义了系统异常与子对应,用户也可以自定义 Java 异常来满足特殊的错误处理需要。4)Java 的异常处理框架是 try-catch-finally,其中 try 块放置有可能出现异常的代码,catch 用来捕捉和处理出现的异常,finally 块为异常处理提供了一个清理机制 试述Java异常捕获与处理中的finally 代码段的功能:finally 语句可以说是为异常处理事件提供的一个清理机制,一般用来关闭文件或释放其它系统资源。在try-catch-finally 语句中可以没有finally

26、 Java 为什么要引入线程机制?线程与进程之间有什么联系和区别?因为现实世界中很多过程都具有多条线索同时工作的特点,这就需要编写的程序也要支持多线程的工作;在 Java 程序中引入线程机制可以提高 CPU 的利用率,增加程序的吞吐量。进程是程序的一次动态执行过程,它对应了从代码加载、执行到执行完毕的一个完整过程;线程是比进程更小的执行单位。一个进程在其执行过程中,可以产生多个线程,形成多条执行线索;每个进程都有一段专用的内存区域,并以 PCB 作为它存在的标志,与此不同的是,线程间可以共享相同的内存单元,并利用这些共享单位来实现数据交换、实时通信与必要的同步操作 线程与线程组之间有何关系?线

27、程组是类 ThreadGroup 的对象,每个线程都隶属于惟一一个线程组,这个线程组在线程创建时指定并在线程的整个生命期内都不能更改;在创建线程时可以通过构造函数指定线程所属的线程组,若不指定,则线程默认属于System 线程组;Java 允许对一个线程组中的所有线程同时进行操作,可以同时阻塞和启动同一个线程组中的线程 线程的终止与线程的挂起有何不同?线程的终止指线程不再具有运行的能力。线程终止的原因有 2 个:一个是正常运行的线程完成了它的全部工作,即执行完了 run方法的最后一个语句并退出;另一个是线程被提前强制性的终止。线程的挂起指一个正在执行的线程如果在某些特殊情况下,如被人为挂起或需

28、要执行费时的输入输出操作时,将让出 CPU 并暂时中止自己的执行,进入阻塞状态。当满足这个线程继续执行的条件后,该线程可以自动或人为的恢复就绪状态等待执行 什么是 socket?它与 TCP/IP 协议有什么关系?Socket可以看成在两个程序进行通信连接中的一个端点,一个程序将一段信息写入。Socket 中,该Socket 将这段信息发送给另外一个Socket中,使这段信息能传送到其他程序中。在两个网络应用程序之间发送和接收信息时都需要建立一个可靠的连接,流套接字依靠TCP 协议来保证信息正确到达目的地 与TCP/IP 协议有关的Java 类库有哪些?它们是如何定义的?分别怎样使用?有如下三

29、个类库:InetAddress、Socket 和 ServerSocket。 InetAddress 对象描绘了32位或 128 位 IP 地址;Socket对象代表了客户程序流套接字;ServerSocket 代表了服务程序流套接字,这三个类均位于 包中 简述流式 socket 的通信机制,它最大的特点是什么?为什么可以实现无误的通信?在两个网络应用程序之间发送和接收信息时都需要建立一个可靠的连接,流套接字依靠TCP 协议来保证信息正确到达目的地;IP 包有可能在网络中丢失或者在传送过程中发生错误,任何一种情况发生,作为接收方的 TCP 将联系发送方 TCP 重新发送这个IP包。这就是所谓的

30、在两个流套接字之间建立可靠的连接 用Java程序实现流式socket 通信,需要使用哪两个类?它们是如何定义的?怎样使用?一个ServerSocket 类,另一个Socket 类。当使用 ServerSocket创建一个 ServerSocket 对象时,port 参数传递端口号,这个端口就是服务器监听连接请求的端口。接下来服务程序进入无限循环之中。无限循环从调用 ServerSocket 的 accept方法开始,在调用开始后 accept方法将导致调用线程阻塞直到连接建立;当客户程序需要与服务器程序通信时,客户程序在客户机创建一个socket 对象。|如果创建了一个 Socket 对象,那

31、么它可能通过调用 Socket的getInputStream方法从服务程序获得输入流读传送来的信息,也可能通过调用 Socket 的 getOutputStream方法获得输出流来发送消息 试判断以下程序段在编译时是否出错,然后上机编译并分析其结果:编译不出错。catch (IOException e)捕捉 IOException,一旦出现该异常,则输出“IOException Caught”,其它的所有异常都由 catch(Exception e)捕捉,并输出“Exception caught” 定义一个点类“Point”。Point 类的属性有 x 轴和 y 轴坐标,可以通过方法 setX

32、,设置 x 轴坐标,方法 setY设置 y 轴坐标,方法 getY获得 x 轴坐标,方法 getY 获得 y 轴坐标。编写一个测试类 PointTest 来创建 Point 类的对象,测试该类 package javabook.answer.ch04; import java.util.*; class Point private double x; private double y; public Point x = 0; y = 0; public Point(double x, double y) setX(x); setY(y); public double getX return x

33、; public void setX(double x) this.x = x; public double getY return y; public void setY(double y) this.y = y; public class EX5 public static void main(String args) Scanner in = new Scanner(System.in); double x, y; System.out.println(输入X坐标:); x = in.nextDouble; System.out.println(输入Y坐标:); y = in.nextD

34、ouble; Point p = new Point(x, y); System.out.println(点的坐标:x= + p.getX + ,y= + p.getY); System.exit(0); 编程定义一个队列类,它封装了队列数组,判断队列空方法、队列满方法、进队列方法和出队列方法 队列类 Queue 的定义如下 package javabook.answer.ch04; public class EX8 private int length;/ 队列长度; private int s;/ 队列数组; private int top;/ 队头; private int rear;/

35、 队尾; public EX8(int length) this.length = length; if (length 0) s = new intlength;/ 初始化队列 top = rear = 0;/ 队列空; public int getTop / 获取队头元素; if (!isEmpty) return stop; return 0; public int getRear / 获取队尾元素; if (!isEmpty) return srear; return 0; public void enQueue(int content) / 进队列; if (!isFull) sre

36、ar = content; rear = (rear + 1) % length; public void delQueue / 出队列 if (!isEmpty) top = (top + 1) % length; public boolean isFull / 判断队列满 if (rear + 1) % length = top) return true; return false; public boolean isEmpty / 判断队列空 if (rear = top) return true; return false; 编程定义一个栈类,它封装了栈数组,判断栈空方法、栈满方法以及

37、进栈和出栈方法 栈类 Stack 的定义如下列代码所示: package javabook.answer.ch04; public class EX9 private int length; private int top; private int s; public EX9(int len) / 初始化空栈 this.length = len;/ 设置栈的空间大小 if (len 0) s = new intlen; top = 0;/ 设置为空栈 public int getTop / 获得栈顶元素 return stop; public boolean isFull / 判断栈满 if

38、(top + 1 length) return true; return false; public boolean isEmpty / 判断栈空 if (top 1) return true; return false; public void push(int content) / 进栈 if (!isFull) s+top = content; public void pop / 出栈 if (!isEmpty) -top; 编写一个类实现复数的运算 定义复数的类 Complex,代码如下: package javabook.answer.ch04; public class EX10

39、private double real; private double image; public EX10(double real, double image) super; this.real = real; this.image = image; public double getImage return image; public void setImage(double image) this.image = image; public double getReal return real; public void setReal(double real) this.real = r

40、eal; public EX10 add(EX10 b) / 复数相加 return new EX10(this.getReal + b.getReal, this.getImage + b.getImage); public EX10 sub(EX10 b) / 复数相减 return new EX10(this.getReal - b.getReal, this.getImage - b.getImage); public EX10 multiple(EX10 b) / 复数相乘 double real, image; real = this.getReal * b.getReal - t

41、his.getImage * b.getImage; image = this.getReal * b.getImage + this.getImage * b.getReal; return new EX10(real, image); public EX10 div(EX10 b) / 复数相除 double real, image, temp; temp = Math.pow(b.getReal, 2) + Math.pow(b.getImage, 2); real = (this.getReal * b.getReal + this.getImage * b.getImage) / t

42、emp; image = (this.getImage * b.getReal - this.getReal * b.getImage) / temp; return new EX10(real, image); public static void main(String args) EX10 a = new EX10(3, 4); EX10 b = new EX10(3, -3); EX10 result; System.out.println(复数相加:); result = a.add(b); System.out.println( + result.getReal + +i + re

43、sult.getImage); System.out.println(复数相乘:); result = a.multiple(b); System.out.println( + result.getReal + +i + result.getImage); System.exit(0); 接口是什么?它将起何种作用?如何定义接口?如何使用接口?假设复数类实现了一个四则运算的接口,试编程建立并使用这个接口? 接口是为外界提供运算,并不提供运算的结构或具体的实现内容。接口是通过interface 来实现的,形如“interface 接口名”。实现复数四则运算的接口代码如下: package jav

44、abook.answer.ch05; interface ComplexCounter public abstract EX3 add(EX3 b); public abstract EX3 sub(EX3 b); public abstract EX3 div(EX3 b); public abstract EX3 mul(EX3 b); public class EX3 implements ComplexCounter private double real; private double image; public EX3(double real, double image) supe

45、r; this.real = real; this.image = image; public double getImage return image; public void setImage(double image) this.image = image; public double getReal return real; public void setReal(double real) this.real = real; public EX3 add(EX3 b) / 复数相加 return new EX3(this.getReal + b.getReal, this.getIma

46、ge + b.getImage); public EX3 sub(EX3 b) / 复数相减 return new EX3(this.getReal - b.getReal, this.getImage - b.getImage); public EX3 mul(EX3 b) / 复数相乘 double real, image; real = this.getReal * b.getReal - this.getImage * b.getImage; image = this.getReal * b.getImage + this.getImage * b.getReal; return new EX3(real, image); public EX3 div(EX3 b) / 复数相除 double real, image, temp; temp = Math.pow(b.getReal, 2) + Math.pow(b.getImage, 2)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号