您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > AI人工智能 > 《JAVA程序设计》教案(自用)
1《Java程序设计》授课教案授课人:刘志成授课班级:NIIT2Java概述一、Java历史Java来自于Sun公司的一个叫Green的项目,该项目的负责人为JamesGosling(JAVA创始人)。Green项目的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。1990-1991年,JamesGosling和项目小组成员基于C++开发一种新的语言Oak(Java的前身)。1995年,Gosling决定创建一个新的语言,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发,正在不断发展和完善。二、Java特点简单:Java的风格类似于C++;Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理;Java提供了丰富的类库。面向对象:不支持类似C语言那样的面向过程的程序设计技术;Java支持静态和动态风格的代码继承及重用。分布式:Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。健壮:Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。Java提供Null指针检测数组边界检测异常出口字节代码校验。结构中立:Java将它的程序编译成一种结构中立的中间文件格式。Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。安全:指针和释放内存等C++功能被删除,避免了非法内存操作;当Java用来创建浏览器时,语言功能和一种浏览器本身提供的功能结合起来,使它更安全。可移植的:使得Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,Java语言规范中也没有任何“同具体实现相关”的内容。解释的:Java解释器(运行系统)能直接运行目标代码指令。高性能:Java可以在运行时直接将目标代码翻译成机器指令。多线程:使得在一个程序里可同时执行多个小任务(线程),多线程带来的更大的好处是更好的交互性能和实时控制性能。动态:允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。3三、Java版本J2SE(Java2StandardEdition):主要用于桌面开发。J2EE(Java2EnterpriseEdition):主要用于企业级服务器。J2ME(Java2MicroEdtion):主要用于手机等移动设备开发。JDK(JavaDevelopKit):Java开发包。J2SDK(Java2SoftwareDevelopKit):Java2软件开发包。两者基本相同。JRE(JavaRuntimeEnviroment):Java运行环境。四、Java环境构建1.JDK的下载安装JDK3.设置JDK的操作环境Path中添加c:\j2sdk\bin建立classpath=.;c:\j2sdk\lib五、JDK的组成Java程序类型应用程序(Application):可在任何操作系统下执行的、可以是基于窗口(图形界面)的或是基于控制台(字符界面)的。小应用程序(Applets):在Web页面内执行的Java程序,需要浏览器。1.Java源程序编辑可以使用Notepad或其他专门编译器编辑源程序(扩展名为java)。2.Java程序编译Java程序的编译程序是javac.exe。javac命令将Java程序编译成字节码(扩展名为.Class)。3.Java程序运行Java.exe命令解释java字节码文件,执行程序。4.Applet程序运行使用AppletViewer.exe,展示WEB页面中包含的Applet。5.Java文档生成使用javadoc.exe自动生成指定的范围内的JAVA软件文档。六、第一个Application程序HelloWorld.javapublicclassHelloWorld{4publicstaticvoidmain(String[]args){System.out.println(HelloWorld!);}}//endofclassHelloWorld七、第一个JAVAApplet程序FirstApplet.javaimportjava.applet.*;importjava.awt.*;publicclassFirstAppletextendsApplet{publicvoidpaint(Graphicsg){g.drawString(HelloWorld!,10,10);}}FirstApplet.htmlappletcode=FirstApplet.classwidth=300height=200/applet实验一第一个JAVA程序5C++代码转换为JAVA一、Java与C++差别1.数据类型(1)增加了Byte和Boolean。(2)去掉了pointer和structs(3)字符类型存储16位Unicode格式的字符,而C++为8位的ASCII格式。(4)Java数据类型有固定的大小(操作系统无关)。如:C++中int在IBMPC中为16位,VAX-11中为32位。而在JAVA中均为32位,保证了JAVA的平台无关性。2.继承性(1)Java不支持多重继承。(2)要继承一个类,使用extends关键字。3.方法重载Java允许方法重载,但不允许运算符重载。4.数组(1)Java中的数组是实在的对象,可以new分配内存。(2)检查数据访问确保其下标在数组的范围内。5.串对象(1)Java中String是一个实在的对象。(2)一致性(对不同系统)和可靠性(不会引起程序中的内存泄漏)。6.Main()方法(1)main()方法必须在类内定义。(2)Java环境必须访问main()方法以执行程序。Main应声明为public,static,因为此类的任何对象在创建前必须存在。(3)命令行参数args[]为String类型,个数由String类对象确定。7.访问区分符(1)Public:公共。(2)Protected:对所有子类和同一包中的类可见。(3)Private:私有(C++中缺省)。(4)Friendly:缺省。(5)Java中不可重设限制访问的方法。8.废料收集(1)可用new分配内存,但不可显式地释放内存。(2)废料收集是自动释放不再使用对象内存的过程。(3)废料收集器必须限制内存的碎片化。9.抽象类和接口6(1)C++中的Virtual类等价Java中abstract类。(2)抽象类用来实现同一层次的类之间的继承关系。(3)接口可用来实现不属于同一层次的不相关的类之间的继承关系。(4)抽象的含义是只有方法的说明而不涉及方法的实现。解释:抽象类:abstractclass和interface在Java语言中都是用来进行抽象类(该抽象类并非从abstractclass翻译而来,它表示的是一个抽象体,而abstractclass为Java语言中用于定义抽象类的一种方法)。在面向对象的概念中,我们知道所有的对象都是通过类来描绘的,但是反过来却不是这样。并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。比如:如果我们进行一个图形编辑软件的开发,就会发现问题领域存在着圆、三角形这样一些具体概念,它们是不同的,但是它们又都属于形状这样一个概念,形状这个概念在问题领域是不存在的,它就是一个抽象概念。正是因为抽象的概念在问题领域没有对应的具体概念,所以用以表征抽象概念的抽象类是不能够实例化的。二者关系:从某种意义上说,interface是一种特殊形式的abstractclass。abstractclass在Java语言中表示的是一种继承关系,一个类只能使用一次继承关系。但是,一个类却可以实现多个interface。附:Java与C的不同点1.Java没有预处理指令。(如C中的#define,#include,#ifdef等)。C中的常量定义在Java中用staticfinal来取代。2.Java中没有C中的全局变量。3.Java中的主类型的size是确定的,而C中主类型的size跟平台相关。4.Java中没有了指针,它使用了类似的句柄来取代指针,但是Java中不允许对句柄进行加减,没有取地址操作符之类的东东。5.Java有垃圾收集机制,不需要自己释放空间。6.Java没有goto语句。Java在C提供的控制语句基础上增加了异常处理和标签break和continue语句。这些可以替代goto的作用。7.C要求一个方法或块中使用的所有局部变量的定义在该方法或块的最开始处定义,而Java允许这些定义在方法或块的任意地方出现。8.Java不要求在调用一个函数以前已经定义了该函数,可以在调用点后面定义。而C有这个要求。9.Java不支持C中的strut和union类型。Java支持方法重载。10.Java不支持C中的enum关键字。11.Java不支持C中的bitfields能力。12.Java不支持C的typedef。713.Java不支持C的方法指针。14.Java不支持C的可变参数表。二、把C++代码转换为JAVA#includeiostream.h#include--import#includeString.hClassCustomer{class前加publicCharcustmorID[10];char--StringCharname[20];Intage;Public:Customer(){:省略Strcpy(customerID,”CID001”);字符变量直接赋值Strcpy(name,”Carol”);Age=29;}VoiddisplayDetails(){void前加publicCout”CustomerIDis”customerID;cout—System.out.printlnCout”CustomerNameis”name;Cout”CustomerAgeis”age;}};Voidmain(){void前加publicstaticCustomercustObj;CustomercustObj=newCustomer()custObj.displayDetails();}实验二C++代码转换为JAVA(1.P.1)JAVA独立实践18static通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法。如下所示:classSimple{staticvoidgo(){System.out.println(Go...);}}publicclassCal{publicstaticvoidmain(String[]args){Simple.go();}}调用一个静态方法就是“类名.方法名”,静态方法的使用很简单如上所示。一般来说,静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。1.静态变量静态变量与静态方法类似。所有此类实例共享此静态变量,也就是说在类装载时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间,当然对于final则另当别论了。看下面这段代码:classValue{
本文标题:《JAVA程序设计》教案(自用)
链接地址:https://www.777doc.com/doc-5513863 .html