当前位置:文档之家› Java程序设计__复习要点

Java程序设计__复习要点

Java程序设计__复习要点第一讲Java语言概述1、Java语言的特点:简单、完全面向对象;平台无关性;多线程;直接支持分布式的网络应用,高效的网络编程;可靠性;安全性。

2、运行机制:Java程序是半编译半解释的。

Java源程序经编译器编译后产生字节码,Java解释器解释执行字节码。

3、Java程序的开发流程:(1)安装JDK,设置环境变量;(2)编写Java源程序:文件以.java作为后缀;(3)javac将源程序编译成字节码文件(.class文件);(3)由运行系统解释和执行字节码文件。

4、Java程序的分类:分两类(1)Java application(Java应用程序):能独立运行的应用程序,有控制台和图形用户界面两种运行方式。

main()方法是类首先执行的方法,语句必须写在类的方法中。

编写完源代码首先通过javac编译,生成.class字节码文件,通过Java解释器(如java.exe)来运行字节码文件。

(2)Java applet(Java小应用程序):Applet是可以嵌入Web页面的最小应用,不能独立运行,必须嵌入到超文本(*.html)中,由浏览器中的Java解释器解释执行。

对于Applet源程序,首先要编译生成字节码文件,再将字节码文件嵌入到超文本中。

简而言之:application:应用程序,编译:javac 源文件名;运行:java 字节码文件(含主函数)Applet:嵌入网页中运行的小应用程序,需有相应的html文件;5、一个完整的Java源程序结构:package语句:该部分至多只有一句,必须放在源程序的第一句;import:该部分可以有若干import语句或者没有,必须放在所有的类定义之前;public classDefinition公共类定义部分,至多只有一个公共类的定义,Java 语言规定该Java源程序的文件名必须与该公共类名完全一致;classDefinition类定义部分,可以有0个或者多个类定义;interfaceDefinition接口定义部分,可以有0个或者多个接口定义。

第二讲Java语言基础1、Java的关键字,常量、变量,简单数据类型,运算符、表达式常量:final基本数据类型:8中基本数据类型:boolean、char、byte、int、short、long、float、double。

其他(数组,类、接口)均为引用或参考类型。

带小数点数如3.13默认为double类型,整数默认int型class、interface、数组都算引用/参考数据类型运算符:判等(= =)只能对基本数据类型,equals方法;短路运算符:&&、||表达式:强制类型转换、自动类型转换2、主要的Java语句结构:分支、循环、转移(1)顺序结构(2)分支结构:if(布尔表达式){ 语句1;}[ else语句2; ]switch(表达式){case 常量1:语句1 ; [break;]case 常量2:语句2 ; [break;]…case 常量n:语句n; [break;][default: 缺省处理语句; break ;] }case与break联用,保证多路分支的正确实现。

case子句只起标号作用,用来查找匹配的入口并从此处开始执行,对后面的case不再匹配,直接执行,直到遇到break跳出。

(3)循环结构while(布尔表达式){ 语句;}for(表达式1;表达式2;表达式3){ 语句;}do{ 语句 }while(布尔表达式A);(4)转移语句break:对于无标号的,跳出当前整个语句块;有标号的,跳出标号指的语句块。

可用于循环结构也用于分支结构。

continue:只能在循环语句中使用;无标号:用来结束所在循环语句块的本次循环;有标号:跳过标号所指的循环语句所有余下部分语句,直接转入标号标明的循环层次。

注:break使程序跳出当前循环,continue终止当前这一轮的循环,跳过本轮剩余的语句,直接进入当前循环的下一轮。

习题:1)相应作业、实验第三讲面向对象程序设计1、类的定义和使用:class 类名,构造函数,成员变量、成员函数、this;构造函数,this:指当前类的一个对象,表示对当前类对象的一个引用,在类中调用当前对象(类)中的方法或变量。

this 还可以用来引用当前类的构造函数。

2、继承:Object:所有类的父类;函数覆盖、域的隐藏、super、this;1)子类名extends 父类名;Java只能单继承;函数覆盖、域的隐藏:super:在子类中要引用被隐藏的父类成员时,就需要用关键字super指明。

如调用父类中被覆盖的方法,其一般格式为super.方法名([参数表]);用来访问父类中被隐藏的成员变量,其一般格式为:super.成员变量名;调用父类的构造方法,其一般格式为super([参数表])。

2)有继承关系,构造函数的执行顺序:先执行父类的再执行子类的;3)方法的重载和覆盖,覆盖的原则一个类中如果有多个同名方法但带有不同的参数列表,成为方法的重载。

重载方法的参数列表不同是指参数的数据类型或个数或次序不同。

重载方法之间必须以参数列表相区别,不能以返回值区别。

方法的覆盖是指在子类中使用与父类中同名的方法,且方法的参数(个数、类型、排列顺序)和返回类型完全一样,即子类中的方法的代码覆盖掉父类中的方法的代码,实现与父类中的方法的不同功能。

方法覆盖的三个规则:(1)返回值必须相同(2)子类方法不可比父类被覆盖的方法更难访问(3)子类方法不可声明抛出更多的异常3、接口:关键词:interface,interface 接口名;接口中只有函数说明没有定义;以后用类来实现接口:class 类名implements 接口名,接口可以实现多个,类要实现接口中所有的函数,不然类是抽象类,抽象类不能直接生成对象。

4、涉及到的关键词:abstract、final、staticstatic:静态成员,整个类对象所共有,而不是像普通成员变量那样,被对象所特有。

类中成员分:实例成员、类成员,知道两种成员的区别5、类的严谨定义及修饰符[修饰符] class 类名[extends 父类名] [implements 接口列表]{ [修饰符] 类型成员变量名1, …, 成员变量名n; // 类体;}(1)类修饰符分类:访问修饰符:缺省(默认方式)、public非访问修饰符:abstract、final ,不能同时修饰一个类(2)extends : 实现继承(3)implements : 实现接口类的访问控制权限:公有和缺省。

类中成员的访问控制权限有四种:private、缺省、protected和public公有6、习题定义类、继承、实现接口第四讲数组、字符串和实用类1、数组都带有长度属性:length,例如,int a[]=new int[10], a.length,Java中二维数组,每一行上的元素个数可以不同;2、了解Java可重用类结构3、字符串类:String类第五讲异常1、什么是异常:程序执行过程中出现的非正常事件,例如:用户输入错、所需文件找不到、数组下标越界等。

而不是编译的语法错。

2、Java将运行错误分为两类:错误(Error)和异常(Exception)。

3、程序对错误和异常的三种处理方式:(1)程序不能处理错误:对于内存溢出等错误,由系统进行处理,Java程序本身不能对错误进行处理;(2)程序应避免能预见而不捕获的异常:对于程序能够预见的异常,程序应该考虑周到进行事先处理,尽量避免发生异常;(3)必须处理的异常:对于程序无法预见的、由特殊环境错误造成的异常,如文件没找到、网络连接中断等,必须进行异常处理,保证程序正常运行,及其可靠性和安全性。

4、异常处理措施:Java中的异常处理机制包括(1)异常类体系,(2)捕捉异常的try语句,(3)抛出自定义异常对象的throw语句,(4)声明方法抛出异常的throws子句,(5)自定义异常类。

这些功能不仅能够捕获并处理异常,还能够主动抛出异常,也能够将异常传递给调用者。

5、两种异常处理机制1)抛出异常:如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛出(throws)异常。

2)捕获异常:当Java运行时系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。

6、捕获异常处理过程try{可能产生异常的代码}catch(异常类型1 变量){ 调用者对异常的处理 }catch(异常类型2 变量){ 调用者对异常的处理 }……[ finally{ } ]说明:try块中的语句没有产生异常。

在这种情况下,Java首先执行try块中的所有的语句,然后执行finally子句中的代码,最后执行try…catch..finally块后面的语句;try块中的语句产生了异常,而且此异常在方法内被捕获。

在这种情况下,Java首先执行try块中的语句,直到产生异常处,然后跳过此try块中剩下的语句,执行捕获此异常的catch子句的处理代码;然后执行finally子句中的代码;try块中产生了异常,而此异常在方法内没有被捕获。

在这种情况下,Java将执行try块中的代码直到产生异常,然后跳过try块中的代码而转去执行finally子句中的代码,最后将异常抛出给方法的调用者。

7、异常处理—抛出异常throws异常说明总是和方法说明出现在一起。

这样,方法说明告诉编译器该方法可能会产生哪些异常,从而要求它的调用者必须考虑处理这些异常。

返回类型方法名(…) [throws 异常类列表]{ 方法体 }在程序中使用throw语句来抛出异常:throw 异常类的实例;8、用户自定义的异常(1)定义Exception子类,代表异常类型(2)在适当的时候创建并抛出异常对象。

(3)调用者处理异常习题:1)设计一个Java程序,自定义异常类,从命令行(键盘)输入一个字符串,如果该字符串值为“XYZ”,则抛出一个异常信息“This is a XYZ”,如果从命令行输入ABC,则没有抛出异常。

(只有XYZ和ABC两种输入)。

(实验中题目)第六讲多线程1、多线程:程序并发执行,而不是执行完一个任务再执行另一个任务;2、基于线程的多任务处理环境中,线程是可执行代码的最小单元;3、Java语言中多线程的两种实现方法——将并发执行的代码写到run()1)继承T hread类:Thread中有run()方法,该方法中包含了运行时执行的代码。

缺省情况下run()方法是空的。

可以通过继承Thread类并重写它的run()方法实现用户线程。

class 类名extends Thread{public void run( ){ }}Thread类中start()函数启动线程sleep() :让线程休眠,让出CPU的使用2)实现Runnable接口class 类名implements Runnable{public void run( ){ }}使用过程:(1)自定义类实现Runnable接口(2)使用Thread类的另一构造函数:Thread(Runnable, String)用实现了Runnable接口的类的对象中所定义的run()方法, 来覆盖新创建的线程对象的run()方法(3)使用start()启动线程3)多线程的两种实现方法及各自的特点(P195)(1)继承Thread类:声明一个线程类继承Thread类,并且覆盖Thread类的run()方法,说明线程对象所执行的操作。

相关主题