用Java技术编写桌面软件

用Java技术编写桌面软件
用Java技术编写桌面软件

用Java技术编写桌面软件

在学习Java编程语言的细节和语法时,我们会碰到这样一个问题:开发桌面应用软件需要使用哪些Java技术,应当引入哪些package?这一问题的答案取决于开发的应用软件类型和它的作用。

这篇文章面向初学Java技术的开发人员,它描述了开发不同类型的桌面应用软件涉及的技术,以及何时决定使用它们。以后的文章将详细阐述如何使用这些技术,以及如何联合使用它们。首先,我们将开始在这篇文章中学习部分技术。

要使用这篇文章中的任何技术,我们必须在计算机上安装Java平台。

桌面应用软件的类型、外观、功能

在学习大量的Java技术前,我们必须搞清楚谁会使用我们的应用软件、他们如何使用它、它在个人电脑还是在网络上运行,以及应用软件采用什么样的外观或图形用户界面(GUI)?

在开发应用软件前,考虑下面5个方面:

·应用软件的发布

·是否采用GUI

·应用软件的功能

·应用软件的部署

·其它Java技术

应用软件的发布

首先,我们必须确定我们的应用软件是否是分布式软件。分布式应用软件运行在多台计算机上,并通过一个网络通讯。一些分布式应用软件是二个独立的软件:后端服务器软件和前端客户端软件。后端软件运行在Solaris或Linux等共享系统上,管理磁盘、打印机、调制解调器等共享资源。后端软件包含有应用软件主要的处理能力;前端客户端软件运行在工作站或个人电脑上,它是用户在使用应用软件时能够看到的部分。前端客户端软件处理用户界面功能,例如接收键盘的输入、在显示屏上显示输出。

分布式应用软件可以非常简单,只在一台客户端计算机和一台服务器上运行;也可以很复杂,在多台客户端和服务器上运行。非分布式应用软件在本地计算机上运行,无需访问网络。例如,我们可以编写一个只在本地机上运行的简单的计算器软件,我们也可以使这类软件成为分布式软件。

通常,我们开发的应用软件都是分布式软件,在网络或互联网上运行,供许多计算机使用。

要开发分布式应用软件,我们需要学习和使用Java Remote Method Invocation(Java RMI),远程Java对象的方法可以被其它Java虚拟机(JVM)调用。Java RMI利用对象序列化对参数进行序列化和反序列化,它不会截断类型,支持真正的面向对象的多态性。

下面是实现Java RMI需要用到的一些package:

·Java.rmi

·Java.rmi.activation

·Java.rmi.dgc

·Java.rmi.registry

·Java.rmi.server

注意,下面的package名字是以"javax"而非"Java"开头的:

·Javax.rmi

·Javax.rmi.CORBA

·Javax.rmi.ssl

是否采用GUI

应用软件通常包含有许多具有不同功能的微型软件。一些微型软件有图形用户界面(GUI)━━可能只是一个简单的窗口或对话框,许多微型软件没有GUI。但是,应用软件本身可能有一个主GUI━━包含有菜单、按钮、工具条、文本框、其它图形功能。GUI主

要用于用户输入━━无论用户点击一个按钮或输入信息,GUI也可以向用户提供更多的信息。另外,GUI组件也可以向用户显示系统返回的信息。

要创建GUI,我们需要使用Java Foundation Classes/Swing(JFC/Swing)和Abstract Window Toolkit(AWT)API。那些package中的许多类和界面使我们能够方便地创建按钮、check-box对象、文本框、其它组件,以及组织它们的组件。

创建应用软件的框架和所有GUI组件最为简单的方式是使用NetBeans IDE等集成开

发环境(IDE)。该IDE使我们能够拖放组件,由它为我们编写复杂的组件代码。学习使用它非常容易,能够为我们节约大量的时间。但是,所有开发人员必须理解JFC/Swing和AWT 的工作原理,因此我们必须亲手进行足够的实践,理解这些概念。

编写GUI软件使用的主要Package

面向AWT

·Java.applet

·Java.awt

·Java.awt.color

·Java.awt.datatransfer

·Java.awt.dnd

·Java.awt.event

·Java.awt.font

·Java.awt.geom

·Java.awt.im

·Java.awt.im.spi

·Java.awt.image

·Java.awt.image.renderable

·Java.awt.print

面向JFC/Swing

·Javax.swing

·Javax.swing.border

·Javax.swing.colorchooser

·Javax.swing.event

·Javax.swing.filechooser

·Javax.swing.plaf

·Javax.swing.plaf.basic

·Javax.swing.plaf.metal

·Javax.swing.plaf.multi

·Javax.swing.plaf.synth

·Javax.swing.table

·Javax.swing.text

·Javax.swing.text.html

·Javax.swing.text.html.parser

·Javax.swing.text.rtf

·Javax.swing.tree

·Javax.swing.undo

当然,我们无需引入所有这些package,只需引入我们使用的package即可。如果我们使用NetBeans IDE,就会发现,在我们使用JFC/Swing或AWT组件时,它就会在代码中创建引入语句。仅仅从它们的名字中,我们就可以很好地理解这些package的作用。

应用软件的功能

这篇文章不可能讨论我们在应用软件中使用的所有功能,但一些功能对于许多或大多数应用软件而言是通用的。

要使GUI中的按钮、菜单、文本框完成一些功能,我们需要理解事件处理机制。事件处理程序(event handler)是一个类,包含有当用户点击一个按钮或选择一个菜单时会执

行的指令。事件处理程序可以执行许多操作,应用软件可以在GUI中显示反馈信息、在文件或数据库中写入数据、进行数学运算、显示结果,或者完成一些简单的操作,例如打开一个对话框供用户输入更多的信息。

读写数据

将用户输入的信息写入一个文件系统,以及在GUI中显示从文件中读取的数据,是应用软件中常见的操作。例如,用户可以在一个GUI表单中输入姓名、地址、电话号码,在服务器上注册软件。处理这些数据的一种方式是让应用软件将数据写入到主机或服务器的一个文件中。

Java.io package通过数据流、序列化、文件系统提供系统输入/输出(I/O)。一个I/O流代表着一个输入源或一个输出目标。流可以代表许多不同类型的源或目标,包括磁盘文件、设备、其它软件、内存数组。流支持许多不同种类的数据,包括字节、简单的数据类型、本地化字母、对象。一些流只是简单地传输数据,另外一些类则处理和转换数据。

无论内部工作原理如何,对于使用它们的软件而言,所有的流都是相同的简单模式。一个流就是一个数据序列。在Java.io package中被使用得比较多的二个类是FileInputStream 和FileOutputStream,这二者都创建与文件相连的字节流。

存储数据的一种常用方法是使用数据库管理系统。要在软件中编写向数据库写数据、然后获得结果的软件代码,我们就需要学习使用JDBC API,JDBC API提供Java编程语言统一的数据访问方法,使我们能够访问几乎所有数据源━━从关系数据库到电子表格,再到普通文件。JDBC技术还提供了用于开发工具和其它接口的通用代码。

JDBC API支持数据库访问的二层和三层模式

在二层模式中,Java applet或应用软件直接与数据源通讯。这种方法要求能够与应用软件访问的特定数据源直接通讯的JDBC驱动程序。用户的命令被传输给数据库或其它数据源,这些命令的结果会被返送给用户。数据源可能位于用户通过网络连接的其它计算机上,这被称为是客户机-服务器配置:用户的计算机是客户机,托管有数据源的计算机则是服务器。而网络则可能是一家公司的内联网或互联网。

在三层模式中,应用软件将命令发送给中间层,中间层再将命令发送给数据源。在处理命令后,数据源将结果返回给中间层,中间层会将结果返回给用户。管理信息系统(MIS)主管发现三层模式非常有吸引力,因为中间层使得对数据存取和更新的控制成为可能。三层模式的另一个好处是它能够简化应用软件的部署。例如,数据可以在数据库中被修改、在不影响用户体验的情况下增添新组件。最后,在许多情况下,三层架构具有性能优势,因为多重事务的效率会更高。

在编写利用JDBC API存取数据库的软件时,我们需要使用下面的组件:

·Java.sql package中的类和界面

·Java DB数据库等数据库管理系统

·使用的数据库管理系统的驱动程序

执行计算和管理数据

我们可能需要编写大量的代码,由于必须输入所有的Java代码,我们应当熟练使用https://www.360docs.net/doc/5314320406.html,ng package。

我们应当理解https://www.360docs.net/doc/5314320406.html,ng package中的字符串,字符串在Java编程中被广泛使用。与StringBuilder类一样,String类用于创建和处理字符串。

我们还应当熟练使用https://www.360docs.net/doc/5314320406.html,ng package中的Number类、及其子类,它使我们能够使用这些类的实例,而不是简单的数字类型。PrintStream和DecimalFormat类提供了"写"格式化的数字输出的方法。最后,Math类提供的数学函数补充了Java语言中的数学运算符,它提供了面向三角函数、指数函数等函数的方法。

为了处理各种类型的数据,我们需要学习collections framework━━表示和处理collections的统一架构。Collection有时也被称作container,是将多个元素组合进一个单元的对象。Collections被用来存储、访问、处理、传输聚合数据。通常情况下,collection表示组成一个合乎自然规律的群体的数据项,例如一迭卡片、一个邮件文件夹、一个字母集、电话号码簿。

图1显示的是collection framework,以及Java.util package中常用的界面

图1:Collection Framework 和Java.util Package中的一些界面

核心的Collection界面是collections framework的基础。Set是一种特殊类型的Collection,SortedSet是一种特殊类型的Set,等等。需要注意的是,一个层包含有二棵截然不同的树。尽管使用方式与collection 相似,Map并非真正的Collection。Map界面提供有3个collection视图,使Map的内容能够被看作一系列的键、值的集合、键-值映射集合。

并发

应用软件通常一次完成多个任务。例如,流式音频应用软件必须同时从网络上读取数字音频内容、解密、播放,并更新对用户显示的内容;无论排版或更新显示内容的任务多么繁忙,字处理软件应当随时响应键盘和鼠标事件。这种能够同时完成数种任务的软件就是并发软件。

错误处理

Java语言使用异常处理错误和其它意外事件。异常是指在软件运行期间、破坏了软件指令正常流程的事件。当一个方法中出现错误时,方法会创建一个对象,将它提交给运行时间库系统。该对象被称作异常对象,包含有相关错误的信息,其中包括类型、错误发生时软件的状态。创建一个异常对象,并将它提交给运行时间库系统就被称作是"抛出异常"。

要在应用软件中处理异常,我们需要理解如何编写代码,使应用软件能够抛出或捕捉一个异常。

应用软件的部署

当希望应用软件在浏览器中运行,或应用软件与web网页内容紧密集成时,使用Java 插件技术部署applet。如果希望应用软件在桌面上运行,就使用Java Web Start技术。

Java Web Start技术要求应用软件被封装为Java Archive(JAR)文件。JAR文件格式使我们能够将多个文件整合到一个存档文件中。通常,一个JAR文件包含类文件、与applet 和应用软件相关的辅助性资源文件。

JAR文件采用了ZIP文件格式,因此我们能够用它完成无损数据压缩、存档、解压缩、文档解包等任务。这些都是JAR文件最常见的用途,通过只使用这些最基本的功能,我们就能够发现JAR文件的许多优点。

如果想利用JAR文件格式提供的电子签名等先进功能,我们需要首先熟悉基本操作。要利用JAR文件完成基本任务,我们需要使用Java Development Kit(JDK)提供的JAR 工具。

一旦应用软件被封装为JAR文件,我们就可以使用Java Web Start技术部署应用软件了。Java Web Start提供了点击一下鼠标启动全功能应用软件的能力。用户可以下载和启动应用软件━━例如一个完整的电子表格软件或互联网聊天客户端,而无需经过复杂的安装过程。

使用Java Web Start软件,通过点击web网页中的一个链接,用户就能够启动基于Java 技术的应用软件。该链接指向一个Java Network Launching Protocol(JNLP)文件,它指示Java Web Start软件下载、缓冲、运行应用软件。

其它Java技术

这一部分将讨论我们应当考虑的其它Java技术。

应用软件安全

大多数开发人员非常担心应用软件的安全性,Java技术有助于从多个方面解决这种担心。Java技术包含有大量的API、工具,以及常用安全算法、机制、协议的实现。Java平台安全性涉及许多领域,其中包括密码、公钥架构、安全通讯、认证、访问控制。Java安全技术为我们提供了完整的应用软件安全框架,也为用户或系统管理员提供了一系列安全地管理应用软件所需要的工具。

安全Package和类过多,我们在这里无法一一列出,但一些优秀的资源使我们能够开始学习与Java应用软件的安全有关的知识。

全屏独占模式API

如果在应用软件中需要高性能图形━━例如游戏、幻灯演示等软件,我们就需要掌握全屏独占模式API。全屏独占模式是一个功能强大的新功能,它它我们能够"暂停"窗口系统,使应用软件能够直接向显示屏上写内容。

国际化

国际化指的是一个设计应用软件的过程,在无需修改设计的情况下就能够使应用软件适用于多种语言和地区。"internationalization"这个词有时也被缩写成"i18n",因为这个单词的第一和最后一个字母之间有16个字母。为实现国际化,我们使用得最多的package是Java.util。

总结

数量众多的Java技术会使我们感到困惑,但这篇文章使我们能够了解开发桌面应用软件所需要的技术。如果想让我们的应用软件具有一定的功能,我们就会找到很好的Java技术帮助实现我们需要的功能。

Java程序设计在线作业-单选题2

Java程序设计在线作业2 一、单选题(共 10 道试题,共 30 分。) 1. 下列程序的输出结果是import java.io.*; public class abc { public static void main(String args[]) { String s1="Hello!"; String s2=new String("World!"); System.out.println(s1.concat(s2)); } } A. false B. Hello! C. Hello!Wofld! D. 12 2. 在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行()。 A. init() B. start() C. destroy() D. stop() 3. Java语言的类型是() A. 面向对象语言 B. 面向过程语言 C. 汇编程序 D. 形式语言 4. 下列哪一项不属于Awt布局管理器?() A. GridLayout B. CardLayout C. BorderLayout D. BoxLayout

5. 下面代码的执行结果是什么?( )<% x=3; %><% int x=5; %><%! int x=7; %> x = <%=x%>, <%=this.x%> A. x = 3, 5 B. x = 3, 7 C. x = 5, 3 D. x = 5, 7 6. Java Applet 源程序文件的扩展名为()。 A. .java B. .class C. .html D. .exe 7. 在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的()方法来完成一些画 图操作。() A. start() B. stop() C. init() D. paint() 8. 阅读下面的代码,第10行的语句将调用哪个方法?() 1. class Person { 2. public void printValue(int i, int j) {/*…*/ } 3. public void printV alue(int i){/*...*/ } 4. } 5. public class Teacher extends Person { 6. public void printValue() {/*...*/ } 7. public void printValue(int i) {/*...*/} 8. public static void main(String args[]){ 9. Person t = new Teacher(); 10. t.printValue(10); 11. } 12. } A. 行2 B. 行3 C. 行6

Java程序设计习题附答案(一)

Java程序设计题库 第一部分绪论 1、下列关于Java语言的特点,描述错误的是(C) A.Java是跨平台的编程语言B.Java支持分布式计算 C.Java是面向过程的编程语言D.Java支持多线程 2、Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?(B) A、安全性 B、多线性 C、跨平台 D、可移植 3、Java JDK中调试器的命令是(C)。 A、javac B、java C、jdb D、avah 4、运行jar文件中class文件需要在java命令后面加的参数为(A)。 A、-cp B-g C-d D-verbose 5、下面哪项在java中是不合法的标识符?(C) A、$user B、point C、You&me D、_endline 6、下面关于Java语言说法正确的是(ABCD)。 A、Java语言是面向对象的、解释执行的网络编程语言。 B、Java语言具有可移植性,是与平台无关的编程语言。 C、Java语言可对内存垃圾自动收集。 D、Java语言编写的程序虽然是“一次编译,到处运行”,但必须要有Java的运行环境。 7、在Java程序设计中,程序员创建()文件,然后编译器把它们转化为()文件。( B) A、源, HTML B、源, 字节代码 C、字节代码, 源 D、HTML, 字节代码 8、Java的JVM是指(B)。 A、由Java操作的家用设备(通常是一个漂亮的小烤箱) B、Java字节代码的解释程序 C、Java源代码的编译器 D、运行Java 所需的硬件设备 9、在Java中,关于CLASSPA TH环境变量的说法不正确的是(A)。 A、CLASSPATH一旦设置之后不可修改,但可以将目录添加到该环境变量中。 B、编译器用它来搜索各自的类文件。 C、CLASSPATH是一个目录列表。 D、解释器用它来搜索各自的类文件。 10、一个可以独立运行的Java应用程序(D)。

Java程序设计实用教程_习题解答

习题 1 1.James Gosling 2.需3个步骤: 1)用文本编辑器编写源文件 2)使用Java编译器(javac.exe)编译源文件,得到字节码文件。 3)使用java解释器(java.exe)来解释执行字节码文件。 3.D:\JDK 1) 设置path 对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量path。如果曾经设置过环境变量path,可单击该变量进行编辑操作,将需要的值d:\jdk\bin加入即可(注意:修改系统环境变量path后要重新打开DOS窗口编译)。或在DOS窗口输入命令行: set path=d:\jdk\bin(注意:用此方法修改环境变量每次打开DOS窗口都需要输入该命令行重新进行设置)。 2) 设置classpath 对于Windows 2000/2003/XP,右键单击“我的电脑”,在弹出的快捷菜单中选择“属性”,弹出“系统特性”对话框,再单击该对话框中的“高级选项”,然后单击“环境变量”按钮,添加系统环境变量classpath。如果曾经设置过环境变量classpath,可单击该变量进行编辑操作,将需要的值d:\jdk\jre\lib\rt.jar;.;加入即可。或在DOS窗口输入命令行: set classpath= d:\jdk\jre\lib\rt.jar;.;。 4.(B)javac 5.Java源文件的扩展名是”.java”,Java字节码的扩展名是”.class” 6.Java应用程序主类的main申明(D)public static void main(String args[])

《java程序设计》作业答案

《JA V A程序设计》作业答案 一、选择题 1、编译HelloWorld.java的正确命令是: C) javac HelloWorld.java 2、正确运行HelloWorld.java的正确命令是: A)java HelloWorld 3、下面程序代码,使用多行注释正确的是: C)/* int k=9; int j=8; k = k + j; */ 4、long型的取值范围是: D)-263~263-1 5、下面不属于Java保留字的是: C)malloc 6、下面属于非法的Java标识符的是: D) abc-d 7、对与System.out.println()语句解释合理的是: C)执行后输出一个空行 8、阅读下面的代码,回答问题, for( m = 0 ; m > -2 ; m -- ){….} For循环执行多少次: C)2 9、阅读下面的代码,回答问题, for( m = 0; m < 5; m++ ) { System.out.print( m + "," ); if( m == 3 ) break; } 执行结果是: C)0,1,2,3, 10、阅读下面的代码,回答问题, public class Ex { int x = 1; void m() { int x = 3; System.out.print( "x= " + x); } public static void main( String[] args ) { Ex ex = new Ex();

ex.m(); } } 执行结果是: B)x=3 11、下面语句在编译时不会出现错误信息的是: a) float f = 1.3; b) char c = "a"; c) byte b = 257; d) boolean b = null; e) int i = 10; 12、编译和运行下面的代码,会有什么结果产生: public class MyClass { public static void main(String arguments[]) { amethod(arguments); } public void amethod(String[] arguments) { System.out.println(arguments); System.out.println(arguments[1]); } } a) 错误,静态方法不能直接引用非静态方法b) 错误,主方法有错误 c) 错误,数据定义有错误d) 方法amethod必须被声明为String型 13、编译期间会出错的是: a) import java.awt.*; package Mypackage; class Myclass {} b) package MyPackage; import java.awt.*; class MyClass{} c) /*This is a comment */ package MyPackage; import java.awt.*; class MyClass{} 14、byte型的变量的表示范围为: a) -128 to 127 b) (-2 power 8 )-1 to 2 power 8 c) -255 to 256 d) 依赖Java虚拟机而定 15、在命令行运行命令:java myprog good morning 会有什么结果显示出来: public class myprog{ public static void main(String argv[]) { System.out.println(argv[2]) } } a) myprog b) good c) morning

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案 第2章 1、关于Java Application得入口方法main()得检验: main()方法得参数名就是否可以改变? main()方法得参数个数就是否可以改变? 该方法名就是否可以改变? 参考答案:(1)main()方法得参数名可以改变.(2)main()方法得参数个数不可以改变。(3)该方法名不可以改变。 2、当一个程序没有main()方法时,能编译吗?如果能编译,能运行吗? 参考答案:当一个程序没有main()方法就是,就是可以编译通过得,但就是不能给运行,因为找不到一个主函数入口。 3、下列语句能否编译通过? bytei =127; bytej = 128; longl1 = 999999; long l2= 9999999999; 参考答案:byte i 与long l1可以编译通过。而byte j 与longl2 超出自身数据类型范围,所以编译失败。 4、下列语句能否编译通过? float f1 =3、5; float f2 = 3.5f; 参考答案:java中浮点型得数据在不声明得情况下都就是double型得,如果要表示一个数据就是float型得,必须在数据后面加上“F”或“f”;因此,floatf1 无法编译通过。 5、验证int 与char,int与double等类型就是否可以相互转换。 参考答案:(1)char类型可以转换为int 类型得,但就是int类型无法转换为char类型得;(2)int 可以转换为double类型得,但就是double类型无法转换为int 类型得。 6、计算下列表达式,注意观察运算符优先级规则。若有表达式就是非法表达式,则指出不合法之处且进行解释。 (1)4+5 == 6*2 ?(2) (4=5)/6?? (3)9%2*7/3>17(4)(4+5)<=6/3 ? (5) 4+5%3!=7-2????(6)4+5/6〉=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法得. 7、下列()就是合法得Java标识符。 (1)Counter1 ??(2)$index, (3) name-7 ??(4)_byte

Java程序设计-习题参考答案

参考答案 第1章 3、计算机系统由哪两部分组成的?计算机硬件结构由哪几部分组成?它们各自有什么作用? 一台计算机由硬件和软件组成。一台典型的计算机由五大部分组成。这五大部分是:运算器,控制器,存储器,输入设备和输出设备。 运算器是执行算术运算和逻辑运算的部件。 控制器是向计算机其他部分发送命令的部件。 存储器是计算机用来存储数据、信息的部件。 输入设备就是外界向计算机输入信息设备。 输出设备恰好与输入设备的作用相反,它将处理过后的信息输出呈现给用户。 9、将以下十进制数转换为对应的二进制数 (1)32 (2)97 (3)256 (4)500 (1)100000 (2)1100001 (3)100000000 (4)111110100 第2章 1.Java语言有哪些主要特点。 平台独立性 安全性 多线程 网络化 面向对象 3.Java Application的开发步骤有哪些。 Java Application的开发步骤: (1)下载JDK软件并安装; (2)配置相应的环境变量(path和classpath); (3)编写Java源程序(文本编辑器或集成开发环境IDE); (4)编译Java源程序,得到字节码文件(javac *.java); (5)执行字节码文件(java 字节码文件名)。

4.什么是环境变量,设置环境变量的主要目的是什么。 环境变量的配置主要是为了进行“寻径”,也即让程序能找到它需要的文件,所以设置的内容就是一些路径。 第3章 1.Java语言对于合法标识符的规定是什么?指出以下哪些为合法标识符。 a a2 3a *a _a $a int a% 在Java语言中,标识符必须以字母、美元符号或者下划线打头,后接字母、数字、下划线或美元符号串。另外,Java语言对标识符的有效字符个数不做限定。 合法的标识符: a a2 _a $a 5.数据类型强制转换的原则是什么?如何转换? 对于变窄转换,如long到short、double到float,或者不兼容转换:float到short、char 到short等,则需要进行强制转换。 float f = 11.5; short b ; b = (short)f; (强制转换) 第4章 5.用穷举法求出3位数中百、十、个位数的立方和就是该数的数。 public class Test { public static void main(String[] args) { int a,b,c,x=100; while(x<1000){ a=x%10; b=(x%100-a)/10; c=(x-x%100)/100; if(a*a*a+b*b*b+c*c*c==x) System.out.println(x); x+=1;

Java程序设计课程作业

Java程序设计课程作业 第一章绪论 1、安装Java SDK到你的电脑中。 2、选择安装一种Java开发工具到你的电脑中。Jcreater、NetBeans、Eclipse 3、编译并运行一个“Hello World”Java程序。 程序代码: // public class App2_1 { public static void main(String[]args) { System.out.println("hello Word"); } } 4、编译并运行一个Java Applet程序。 答:编译成功,不过浏览器不显示自己的Applet程序,还在学习中,错误的原因是自己电脑上java的安全设置的原因,修改后运行成功。 第二章Java语法基础 1、下列表达式是否有错?若有错,请说明何处出现何种错误;若无错,请给出其值。 (1) 3+4<<2^-8 没有错误,运行结果为-28 (2) 36>>2*4&48<<8/4+2 运行结果为0

有错误,||这个运算规律是两边均为boolean型 (4) 2*4&&0<2||4%2 有错误,||这个运算规律是两边均为boolean型 2、任意准备一份学生成绩表,其中包括至少3门课程、每门课程至少10名同学的成绩。请编写程序完成以下功能:(1) 统计并输出各门课程的平均成绩。(2) 输出等级表:优、良、中、及格及不及格。 import java.util.*; class student{ String num; doublemath; doubleenglish; doublechinese; } publicclass Test{ publicstaticvoid main(String[]agrs){ student stu[]=new student[11]; for(int i=0;i<10;i++) stu[i]=new student(); Scanner reader=new Scanner(System.in); System.out.println("请依次输入十个同学的数学,英语。语文的成绩:"); for(int i=0;i<=10;i++){ System.out.println("第"+(i+1)+"同学的数学,英语。语文的成绩:"); stu[i].math=reader.nextInt(); stu[i].english=reader.nextInt(); stu[i].chinese=reader.nextInt(); } double sum=0; for(int i=0;i<10;i++) sum=sum+stu[i].math; float A=(float)sum/10; System.out.println("数学平均成绩:"+A); //int sum;

JavaWeb程序设计教程课后练习答案

第1章 Web应用开发简介 习题答案 1.Web在组成上包括______和______两部分。 答案: 服务器 客户端 2.谈谈对面向对象的认识。 答案: 面向对象将将要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙解决问题中的各个步骤中的行为。面向对象编程方式是建立在面向过程编程方式基础上,其最重要的改变在于面向对象编程中,程序将围绕被操作的对象来设计,而不是操作本身。面向对象编程方式以类作为构造程序的基本单位,具有封装、抽象、继承、多态性等特点。 3.介绍几种常用的框架技术。 答案: Java中常用的框架。 1.Struts Struts是Apache 基金会Jakarta 项目组的一个开源项目,是一个基于Sun J2EE平台的MVC框架,它将Servlet和JSP标签作为实现自身功能的一部分。 2.WebWork WebWork是由OpenSymphony组织开发的,是一个基于Web的MVC框架。它在运行时通过Interceptor(拦截器)自动应用,因此脱离了Action类。 3.Struts 2 Struts 2是Apache基金会的一个开源项目,它建立在Struts框架与WebWork框架基础之上,继承了二者的优点,是目前非常流行的一个Web框架。 4.Spring Spring是一个以IoC和AOP为核心的轻量级容器框架。它提供了一系列的Java EE开发解决方案,包括表示层的Spring MVC、持久层的Spring JDBC以及业务层事务管理等众

多的企业级应用技术。 5.Hibernate Hibernate是一个ORM(对象关系映射)框架,它对JDBC进行了轻量级的封装。通过使用Hibernate框架,开发人员能够以面向对象的思维方式来操作数据库。 6.Ibatis 相对于Hibernate而言,Ibatis是一个“半自动化”的ORM实现框架,它主要致力于POJO与SQL之间的映射关系,是对“全自动化”ORM框架的一种有益补充。 7.EasyJWeb EasyJWeb是一个核心基于模板技术实现的MVC框架,主要致力于Java Web应用程序的快速开发。 4.IDE的用途是什么? 答案: IDE是一种用于辅助开发人员开发应用程序的应用软件,它一般包括代码编辑器、编译器、调试器和图形用户界面工具,有的还包括版本控制系统、性能分析器等更多工具,因此IDE也就具有了编写、编译、调试等多种功能。正是基于这些功能,使用IDE能够减少项目的开发周期,减轻程序员的工作量,提高应用程序的开发效率等。 5.Web应用服务器的用途是什么? Web应用服务器是为创建、部署、运行以及管理Web应用提供多种运行时服务(如事务、安全等等)的分布式系统,它是应用程序运行的一个基本环境。

Java程序设计大作业实验报告

目录 一、前言 (2) 二、需求分析 (3) 三、系统总体设计 (3) 3.1系统总体设计系统思路 (3) 3.2数据库设计 (4) 3.2.1 login1表的设计和数据 (4) 3.2.2 student表的设计和数据 (5) 3.2.3 course表的设计和数据 (5) 3.2.4 score表的设计和数据 (5) 3.3系统功能模块设计 (6) 四、系统详细设计 (7) 4.1登录模块 (7) 4.2 学生模块 (7) 4.3 教师模块 (7) 4.4 管理员模块 (8) 五、系统测试及运行结果 (9) 5.1 主界面 (9) 5.2 学生管理中心界面 (9) 5.3 教师管理中心界面 (10) 5.4 管理员管理中心界面 (10)

5.5 查询课表界面 (11) 5.6 查询成绩界面 (11) 5.7 查询教学情况界面 (11) 5.8 查询所有学生成绩界面 (12) 5.9 学生信息管理界面 (12) 5.10 学生成绩管理界面 (13) 5.11 用户管理界面 (13) 六、实验总结 (14) 七、参考文献 (14) 一、前言 随着计算机在人们生活中的普及和网络时代的来临,对信息的要求日益增加,学生信息管理业务受到了较为强烈的冲击,传统的手工管理方式传统的手工管理方式已不能适应现在的信息化社会。如何利用现有的先进计算机技术来解决学生信息管理成为当下的一个重要问题,学生信息管理系统是典型的信息管理系统,其开发主要就是针对前台的页面展示以及后台数据的管理。对于前者,要求应用程序功

能完备,易于使用,界面简单;而对于后者,则要求数据库具有一致性、完整性,并能够依据前台的操作来对应操作后台数据库达到一定的安全性。 本学生信息管理系统主要采用的纯JAVA代码实现图形界面系统的开发,以及数据库知识进行数据的查询,删除,插入和更新。本系统主要分为三个部分:学生模块、教师模块、管理员模块。其中学生模块实现的功能:查询课表信息和查询成绩。教师模块实现的功能:查询课表信息、查询教学情况和查询所有学生的各科成绩。管理员模块实现的功能:课表信息的管理、学生信息管理、学生成绩管理和用户信息管理。 二、需求分析 用JAVA语言实现学生信息管理系统的图形界面的编程。主要实现以下几个重要功能: ①实现三种不同身份(学生、教师、管理员)登录学生信息管理系统。(其中的数据信息保存在数据库中)

《Java程序设计》课后习题参考答案

习题1参考答案 1.Java语言的特点有哪些? 答:参考1.1.2 防止直接访问数据变量看起来有些奇怪,但它实际上却对使用类的程序质量有极大的好处。既然数据的单个项是不可访问的,那么惟一的办法就是通过方法来读或写。因此,如果要求类成员内部的一致性,就应该通过类本身的方法来处理。 这种数据隐藏技术就是面向对象的重要特性——封装。它将类的外部界面与类功能的实现区分开来,隐藏实现细节,(通过公共方法)保留有限的对外接口,迫使用户使用外部界面,通过访问接口实现对数据的操作。即使实现细节发生了改变,还可通过界面承担其功能而保留原样,确保调用它的代码还继续工作,这使代码维护更简单。 2.简述封装的优点。 答:封装是一个简单而有效的思想,优点有:(1)模块化,对内成为一个结构完整、可进行自我管理、自我平衡、高度集中的整体。(2)信息隐蔽,对外则是一个功能明确、接口单一、可在各种适合的环境下都能独立工作的有机单元。 面向对象的程序设计实现了对象的封装,使得用户不必关心诸如对象的行为是如何实现的这样一些细节。通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也有利于对复杂对象的管理。类的封装性使得代码的可重用性大为提高,这样的有机单元特别适合构建大型标准化的软件系统,具有很高的开发效率。 3.Java的基本工具有哪些? (1)javac 编译器 (2)java 解释器 (3)jdb Java 语言调试器 (4)javadoc API文档管理器 (5)javah 头文件生成器 (6)appletviewer 小应用程序浏览器 (7)javap 类文件反汇编器 4.Java开发环境是如何配置的? 答:对于Windows 2000以上版本的操作系统,可以打开[控制面板]窗口,双击其中的[系统]图标,在[系统特性]窗口中单击[高级]选项卡,进而单击[环境变量]按钮。在出现的[环境变量]窗口中,在[系统变量]框中选择[Path]项,单击[编辑]按钮,在弹出的[编辑系统变量]窗口的[变量值]框后加上上面两条语句。 习题2参考答案 1.Java语言包含哪些数据类型? 答:包含基本数据类型和复合数据类型。基本类型包括整数类型、浮点数类型、布尔类型。复合类型包括类类型(Class Type)、接口类型(Interface Type)与数组类型(Array Type)。 2.Java有多少关键字? 答:abstract, continue, for, new, switch,boolean, default, goto*, null, synchronized,break, do, if, package, this,byte, double, implements, private, threadsafe,byvalve*, else, import, protected, throw,case, extends, instanceof, public, transient,catch, false, int, return, true,char, final,

java语言程序设计作业答案

Java语言程序设计(郑莉) 第二章习题答案 1.什么是对象、类,它们之间的联系? 答:1)对象是包含现实世界物体特征的抽象实体,它反映系统为之保存信息和与它交互的能力。对象是一些属性及服务的封装体,在程序设计领域,可以用“对象=数据+作用于这些数据上的操作”来表示。现实生活中对象是指客观世界的实体;在程序中对象是指一组变量和相关方法的集合。 2)类是既有相同操作功能和相同的数据格式的对象的集合与抽象! 3)两者的关系:对象是类的具体实例.。 4.请解释类属性、实例属性及其区别。 答:实例属性,由一个个的实例用来存储所有实例都需要的属性信息,不同实例的属性值可能会不同。 5.请解释类方法、实例属性及其区别。 答:实例方法表示特定对象的行为,在声明时前面不加static修饰符,在使用时需要发送给一个类实例。 类方法也称为静态方法,在方法声明时前面需加static修饰符,类方法表示具体实例中类对象的共有行为。 区别:实例方法可以直接访问实例变量,调用实例方法,实例方法可以直接访问类变量,调用类方法;类方法可以直接调用类变量和类方法,类方法不能直接调用实例变量和实例方法; 6.类的访问控制符有哪几种?具体含义及其区别。 答:类的访问控制符只有public(公共类)及无修饰符(默认类)两种。 区别:当使用public修饰符时表示所有其他的类都可以使用此类;当没有修饰符时,则只有与此类处于同一包中的其他类可以使用类。 7类成员的访问控制符有哪几种?他们对类成员分别有哪些访问限制的作用? 答: 类成员的访问控制符有public,private,protecte及无修饰符. public(公有的):用public修饰的成分表示公有的,也就是它可以被其他任何对象访问(前提是对累成员所在的类访问有访问权限). P rivate(保护的):类中限定为private的成员只能被这个类本身访问,在类外不可见。proteced(保护的)用该关键字修饰的成分是受保护的,只可以被同一类及其子类的实例对象访问。 无修饰符(默认的):public,private,protected这个三个限定符不是必须写的。如果不写,则表明是“friendly”,相应的成分可以被所在保重的各类访问。 8简述构造方法的特点? 答: 构造方法主要有以下特点: (1)构造方法的方法名与类名相同; (2)构造方法没有返回类型(修饰符void也不能有); (3)构造方法通常被声明为公有的(public);

java语言程序设计课后习题答案解析

习题2 3.使用“= =”对相同内容的字符串进行比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String("abc"); String str = "abc"; 使用“= =”会因为创建的形式不同而产生不同的结果: String str1 = "abc"; String str2 = "abc"; System.out.println(str1= =str2); //true String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1= =str2); //false String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1= =str2); //false 因此自符串如果是对内容进行比较,使用equals方法比较可靠。 String str1 = "abc"; String str2 = "abc"; System.out.println(str1= =str2); //true String str1 = new String("abc"); String str2 = "abc"; System.out.println(str1.equals(str2)); //true String str1 = new String("abc"); String str2 = new String("abc"); System.out.println(str1.equals(str2)); //true 5.编写一个程序,把变量n的初始值设置为1678,然后利用除法运算和取余运算把变量的每位数字都提出来并打印,输出结果为:n=1678。n的每位数字是1,6,7,8。若n为任意值呢? 法一: public class Exercise5{ public static void main(String[] args){ int n=1678; int unit; int decimal; int hundred; int thousand; int count; thousand=n/1000; count=n%1000; hundred=count/100; count=count%100; decimal=count/10; count=count%10; unit=count; System.out.println("1678包含的数 字分别是: "+thousand+','+hundred+','+decimal+', '+unit); } } //如果n为任意值 import java.io.*; public class Exercise51{ public static void main(String[] args) throws IOException{ System.out.print("请输入一个整数:"); InputStreamReader isStream=new InputStreamReader(System.in); BufferedReader bfReader=new BufferedReader(isStream); String input=bfReader.readLine(); int length=input.length()-1; int n=new

Java程序设计作业答案

1、创建一个Java程序,输出自己的基本信息:名字、学号以及本学期所修课程名称。答: package com.study; public class Example{ public static void main(String[] args) { System.out.println("名字"+"朱朝龙"); System.out.println("学号"+"1234567"); System.out.println("修课程名称"+"Java程序设计"); } } 2、叙述标识符的定义。指出下列用户自定义的标识符中哪些是合法的,那些是非法的?为什么? 2、abc AbC _2xy x$y if$ Else do b(3) ‘def’ Chine_bb 3by AbsFloat 答: 标识符:是用户编程时使用的名字 1.标识符由字母、数字、下划线“_”、美元符号“$”组成,并且首字母 不能是数字。 2.不能把java关键字和作为标识符。 3.标识符没有长度限制。 4.标识符对大小写敏感。 合法标识符为:abc AbC _2xy x$y if$ Else Chine_bb AbsFloat 非法表示符为:do (关键字);b(3) ‘def’(包含非字母、数字、下划线“$”字符);3by(数字开头) 3、设有变量说明语句: int a = 15; boolean b,e; char c, d; float x = 9.2f, y, z; 求出下列表达式的值: (1) b = 5>4||x>25; 答:true (2) e = !(a > x); 答:false (3) c = ‘a’ + 5; 答:f (4)y = x + a % 3 + x/2;

Java程序设计作业

要求:一个院系一个年级的同学题目不能相同,所以选择题目时应避免做相同的题目,其它学院和年级的同学相对自由一点。从22 道题目中任选一道,按实验指导书模式那样完成即可,写好大作业报告,同时写上自己的姓名、学号、学院和年级 1、编写一个Java 应用程序,从键盘读取用户输入两个字符串,并重载3 个函数 分别实现这两个字符串的拼接、整数相加和浮点数相加。要进行异常处理,对输入的不符合要求的字符串提示给用户,不能使程序崩溃。 2、有工人,农民,教师,科学家,服务生,其中,工人,农民,服务生只有基本工资. 教师除基本工资外,还有课酬(元/天),科学家除基本工资外,还有年终奖,请你写 出相关类,将各种类型的员工的全年工资打印出来; 3、创建一个复数类complex,对复数进行数学运算,复数具有如下格式:RealPart+ImaginaryPart*I 其中,I 为-1的平方根。 要求如下: (1)利用浮点变量表示此类的私有数据。提供两个构造方法,一个用于此类声明时对象的初始化;一个为带默认值得无参构造方法。 (2)提供两复数加、减、乘的运算方法。 (3)按格式(a,b)打印复数。其中a 为实部,b 为虚部。 4、(1)编写一个圆类Circle,该类拥有:①一个成员变量 Radius(私有,浮点型);// 存放圆的半径; ②两个构造方法 Circle( ) // 将半径设为0 Circle(double r ) //创建Circle对象时将半径初始化为 r ③三个成员方法 double getArea( ) //获取圆的面积 double getPerimeter( ) //获取圆的周长 void show( ) //将圆的半径、周长、面积输出到屏幕 (2)编写一个圆柱体类Cylinder,它继承于上面的Circle 类。还拥有: ①一个成员变量 double hight(私有,浮点型);// 圆柱体的高; ②构造方法 Cylinder (double r, double h ) //创建Circle 对象时将半径 初始化为r ③成员方法 double getVolume( ) //获取圆柱体的体积 void showVolume( ) //将圆柱体的体积输出到屏幕 编写应用程序,创建类的对象,分别设置圆的半径、圆柱体的高,计算并分别显示圆半径、圆面积、圆周长,圆柱体的体积。

Java程序设计基础习题答案

Java程序设计基础课后习题参考答案 第2章 1、关于Java Application 的入口方法main()的检验: main()方法的参数名就是否可以改变? main()方法的参数个数就是否可以改变? 该方法名就是否可以改变? 参考答案:(1)main()方法的参数名可以改变。(2)main()方法的参数个数不可以改变。(3)该方法名不可以改变。 2、当一个程序没有main()方法时,能编译不?如果能编译,能运行不? 参考答案:当一个程序没有main()方法就是,就是可以编译通过的,但就是不能给运行,因为找不到一个主函数入口。 3、下列语句能否编译通过? byte i = 127; byte j = 128; long l1 = 999999; long l2 = 9999999999; 参考答案:byte i 与long l1可以编译通过。而byte j 与long l2 超出自身数据类型范围,所以编译失败。 4、下列语句能否编译通过? float f1 = 3、5; float f2 = 3、5f; 参考答案:java中浮点型的数据在不声明的情况下都就是double型的,如果要表示一个数据就是float型的,必须在数据后面加上“F”或“f”;因此,float f1 无法编译通过。 5、验证int 与char,int与double等类型就是否可以相互转换。 参考答案:(1)char类型可以转换为int 类型的,但就是int类型无法转换为char类型的;(2)int 可以转换为double类型的,但就是double类型无法转换为int 类型的。 6、计算下列表达式,注意观察运算符优先级规则。若有表达式就是非法表达式,则指出不合法之处且进行解释。 (1) 4+5 == 6*2 (2) (4=5)/6 (3) 9%2*7/3>17 (4) (4+5)<=6/3 (5) 4+5%3!=7-2 (6) 4+5/6>=10%2 参考答案:表达式(2)为不合法表达式,只能将值赋值给一个变量,因此其中(4=5)将5赋值给4就是不合法的。 7、下列()就是合法的Java标识符。 (1) Counter1 (2) $index, (3) name-7 (4) _byte (5) larray (6) 2i

《Java 程序设计》习题答案

第1章Java语言面与向对象的程序设计 习题 1.Java语言有哪些主要特点? 答:(要点): 1.简单易学 2.面向对象 3.平台无关性 4.安全稳定 5.支持多线程 6.很好地支持网络编程 7.Java丰富的类库使得Java可以广泛地应用 2.简述面向过程问题求解和面向对象问题求解的异同。试列举出面向对象和面向过程的编程语言各两种。 答:面向过程问题求解,以具体的解题过程为研究和实现的主体,其思维特点更接近于计算机;面向对象的问题求解,则是以“对象”为主体,“对象”是现实世界的实体或概念在计算机逻辑中的抽象表示,更接近于人的思维特点。 面向过程的编程语言:C,Pascal,Foratn。 面向对象的编程语言:C++,Java,C#。 3.简述对象、类和实体及它们之间的相互关系。尝试从日常接触到的人或物中抽象出对象的概念。 答:面向对象技术中的对象就是现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。 类是同种对象的集合与抽象。类是一种抽象的数据类型,它是所有具有一定共性的对象的抽象,而属于类的某一个对象则被称为是类的一个实例,是类的一次实例化的结果。如果类是抽象的概念,如“电视机”,那么对象就是某一个具体的电视机,如“我家那台电视机”。 4.对象有哪些属性?什么是状态?什么是行为?二者之间有何关系?设有对象“学生”,试为这个对象设计状态与行为。 答:对象都具有状态和行为。 对象的状态又称为对象的静态属性,主要指对象内部所包含的各种信息,也就是变量。每个对象个体都具有自己专有的内部变量,这些变量的值标明了对象所处的状态。 行为又称为对象的操作,它主要表述对象的动态属性,操作的作用是设置或改变对象的状态。 学生的状态:姓名、性别、年龄、所在学校、所在系别、通讯地址、电话号码、入学成绩等; 学生的行为:自我介绍、入学注册、选课、参加比赛等。

JAVA程序设计作业题

JA V A程序设计作业题 1. 编写程序实现单链表,要提供插入,删除,排序,统计等功能,链表节点中的数据要求 是整数。 2. 定义直线类,并提供判断两条直线是否相交等功能。 3. 编写程序实现将BASE64编码和解码功能,将UNICODE字符串“中国”编码为BASE64格式的数据,并解码。 4. 打印所有3位的水仙花数,水仙花数是指其各位数字的立方和等于其自身,例如 153=1*1*1 + 5*5*5 + 3*3*3 5. 随机产生7个1至35之间(包括1和35)的不重复整数,并排序输出。 6. 输出某个整数数组的最大值和最小值。 7. 11/17的小数点后第1000位是几? 8. 判断某字符串内容是否是合法的EMAIL地址。条件为必须包含唯一一个@字符,该字符 不是首字符也不是尾字符。 9. 求fibonacci数列第100项的值。fibonacci数列的第一项的值为1,第二项的值也为1,第 三项以后的值为其前两项的和。要求使用循环和递归的方法来实现。 10. 编写程序实现文件服务功能。 运行命令: java FTServer java FTClient host put adir|afile java FTClient host get 例如: java FTClient 192.168.0.5 put a.txt 该命令实现将当前文件夹下面的a.txt文件上传到 192.168.0.5服务器的共享文件夹下。 java FTClient 192.168.0.5 put c:\test\b.pdf 该命令实现将c:\test\b.pdf文件上传到 192.168.0.5服务器的共享文件夹下。 java FTClient 192.168.0.5 put c:\test 运行该命令,在控制台输出该文件夹下的 子文件(不包括子目录下的子文件),假定, 在c:\test文件夹下有文件a1.doc,a2.doc, b1.pdf,b2.pdf,以及子文件夹abc 那么运行上面的命令,程序输出: java FTClient 192.168.0.5 put c:\test 1: a1.doc 2: a2.doc 3: b1.pdf 4: b2.pdf please input your choice:

相关文档
最新文档