Java期末知识总结课件.ppt

上传人:牧羊曲112 文档编号:1480952 上传时间:2022-11-30 格式:PPT 页数:66 大小:536.51KB
返回 下载 相关 举报
Java期末知识总结课件.ppt_第1页
第1页 / 共66页
Java期末知识总结课件.ppt_第2页
第2页 / 共66页
Java期末知识总结课件.ppt_第3页
第3页 / 共66页
Java期末知识总结课件.ppt_第4页
第4页 / 共66页
Java期末知识总结课件.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《Java期末知识总结课件.ppt》由会员分享,可在线阅读,更多相关《Java期末知识总结课件.ppt(66页珍藏版)》请在三一办公上搜索。

1、2022/11/30,1,Java程序设计Programming in Java,期末总结,2022/11/30,2,教学大纲( Syllabus),第1章 绪论第2章 结构化程序设计第3章 面向对象程序设计第4章 数组、字符串、向量与哈希表第6章 异常处理、递归和单体程序设计方法第7章 文件与数据流,2022/11/30,3,教学大纲( Syllabus),第8章 Swing图形用户界面程序设计第9章 小应用程序(Applet)第11章 多线程程序设计,2022/11/30,4,Java中的标识符,标识符可以用来标识变量名、类名、类中的方法名和文件名等. 标识符组成: (1) 字母, (2)

2、数字, (3)下划线“_” 和 (4)美元符号“$”; 首字符必须是(1) 字母, (2)下划线“_” 和 (3)美元符号“$”;所有标识符是区分大小写的;除去关键字、false、true和null;,2022/11/30,5,Java关键字,具有特殊含义的字符序列例如: public、 static和class 具有特殊用途,不能作为变量名、方法名和类名,2022/11/30,6,数据类型,2022/11/30,7,1. 算术运算符,算术运算符包括:+, -, *, /, +, -, %没有指数运算Math.pow(2.0, 3.0); / 2.03.0整数除法:截去余数7 / 5 结果为

3、1取模:返回余数7 % 5 结果为 2,2022/11/30,8,小测验 ?,-7 / 5 =-7 % 5 =7 % -5 =5.5 % 1.0 =i=3 y=(i+)+(i+)+(i+) y=?,-1-220.5,2022/11/30,9,2. 关系运算符,六个关系运算符: 、=、= 和 !=例如:1 2; / false3.5 != 1; / true 51.5 = 23.0; / true540 = 654; / true24 = 3*8; / trueboolean test1=(10 10); / test1= false;,2022/11/30,10,3.布尔逻辑运算符,六个布尔逻

4、辑运算符: & (逻辑与AND) | (逻辑或OR) (逻辑异或XOR ) ! (逻辑非NOT)单目运算符, 即只有一个操作数 & (条件与AND) | (条件或OR),2022/11/30,11,5. 赋值类运算符,赋值类运算符包括:=、+=、-=、*=、/=、,2022/11/30,12,for循环语句,格式: for (初始化表达式;条件表达式;更新表达式) 语句或语句块也可写成: 初始化表达式; while (条件表达式 ) 语句或语句块 更新表达式; ,2022/11/30,13,类的定义,类的定义格式如下:类修饰词 class 类名 extends 父类名 implements 接

5、口名称列表 类体,2022/11/30,14,类的定义,类的定义格式如下:类修饰词(访问说明符)为public或者缺省。public用来声明该类为公有类,可以被别的对象访问。声明为公有的类存储的文件名为类名。类名:用户自定义的标识符,用来标志这个类的引用。父类名(超类名):是指已经存在的类,可以是用户已定义的,也可以是系统类。接口名:即后面讲到的接口。,2022/11/30,15,构造方法,构造方法在创建新的实例对象时起作用构造方法通常用来初始化实例对象,例如: 初始化成员域或设置工作环境构造方法的特点:与类同名没有返回值可以含有多种构造方法(重载)但必须具有不同的参数列表,2022/11/3

6、0,16,继承性,继承性 软件重用的一种方法根据已有的类创建新的类采纳了旧的类的属性(域)及其行为(方法)增加了新的能力子类继承父类子类增加了新的成员域或新的成员方法子类对象是一种特殊的父类对象,2022/11/30,17,继承性的实现,采用关键字extendspublic class J_HelloApplet extends Applet / / 类J_HelloApplet结束,2022/11/30,18,多继承,在有些计算机语言中,允许一个类有多个直接父类。这种继承关系称为多继承Java不支持多继承Java 允许一个类有多个直接父接口(interface),2022/11/30,19,

7、多态性的种类,静态的多态性重载(Overloading)一个类中定义了多个同名的方法,它们或有不同的参数或有不同的参数类型,则称为方法的重载。 动态的多态性覆盖重写(Overriding)在子类中定义某方法与其父类有相同的名称和参数,我们就可以这样说此方法被子类重写。,2022/11/30,20,静态的多态性(重载),在编译时就能够被识别针对的是同一个类内的同名方法例如: public int square(int x) return x * x; public double square(double x) return x * x;,2022/11/30,21,动态多态性(覆盖),在程序运

8、行时才被识别重写父类的方法要求相同的声明例如:,2022/11/30,22,类成员的封装性,成员(域或方法)的访问控制方式:1) public2) private3) protected4) default(缺省方式),2022/11/30,23,成员的访问控制方式: public,则该成员可以被任何类中的方法访问表明对外开放的方式少量(或者没有) public 域部分 public 方法,2022/11/30,24,成员的访问控制方式: private,目的: 隐藏具体的实现细节只有同一个类的成员方法才能访问私有成员域常常是private 采用 public “get” 方法读取数据采用 p

9、ublic “set”方法写数据,2022/11/30,25,成员的访问控制方式: protected,介于public 和private之间同一个包内的所有类的所有方法都能访问该成员如果不在同一个包内的类的方法要访问该成员,则该类必须是该成员所在的类的子类,2022/11/30,26,成员的访问控制方式: default (缺省方式),只有在同一个包内的类的方法才能访问该方法,2022/11/30,27,类成员封装性总结,2022/11/30,28,abstract,Java允许定义抽象(abstract)的类和方法抽象(abstract)的方法可以只提供方法的头部,但不提供实现的部分抽象(

10、abstract)的方法只能是抽象(abstract)类中的方法例如:,2022/11/30,29,关键字: static,静态的(static)域和静态的(static)方法实际上隶属于类对象。 静态的(static)域示例: System.out静态的(static)方法示例: main( )示例: Math.sqrt( )public static double sqrt(double a),2022/11/30,30,关键字: final,在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。当用final作用于类的成员变量时,成员变量(注意是类的成员变量

11、,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。使用final修饰方法参数的目的是防止修改这个参数的值,同时也是一种声明和约定,强调这个参数是不可变的。,2022/11/30,31,接口(interface),接口(interface)就象是一种特殊的类成员方法: abstract成员域: final和static接口(interface)中所有的方法和域必须都是 public的每个接口一般定义在一个.java 文件中,2022/11/30,32,注意事项,接口中成员方法的默认方式是 public

12、 和 abstract接口中成员域的默认方式是public、 static和final,2022/11/30,33,通过初始化语句创建数组,Java语言允许通过数组的初始化语句创建数组。示例: int n = 10, 20, 30, 40, 50 ;上面语句创建了一个含有五个元素的数组。下标值分别为0, 1, 2, 3, 4。这时不需要运算符new。,2022/11/30,34,多维数组,最常用的多维数组是二维数组 int a = new int34;二维数组可以理解成如下图示的表格,行的下标值,列的下标值,2022/11/30,35,注意事项,Java的多维数组实际上是数组的数组。即创建以数

13、组为元素的数组。意味着: 二维数组的每一行可以具有不同的列数。示例:int a ;a = new int 3 ; / allocate rowsa 0 = new int 3 ; / allocate row 0a 1 = new int 2 ; / allocate row 1a.length 行数a i .length 第i行列数,2022/11/30,36,向量,向量功能上与数组类似,只是其元素个数可以改变,而且向量元素的数据类型必须是引用类型。基本原理:预先给向量对象分配一定的存储空间,然后给向量对象添加元素或者设置元素值。向量对象的存储空间大小称为向量对象的容量(capacity),

14、单位为元素个数。向量对象的实际元素个数称为向量对象的长度(size)。当向量容量扩大的时候,向量对象中存在一个容量增量( capacityIncrement ),通常为一个非负整数。,2022/11/30,37,向量,向量所对应的类是类java.util.Vector向量变量的声明格式Vector 变量名;示例Vector vs;,2022/11/30,38,受检异常和非受检异常,受检异常(Checked Exception)必须在方法声明时通过throws列出在编译时就能被检测出 非受检异常(Unchecked Exception)不必在throws列表中错误(Errors) 和运行时异常(

15、RuntimeExceptions) 受检异常,必须处理才能通过编译 运行时异常只有在运行时才能被发现 错误常常指的是致命性错误,常常也无法处理,2022/11/30,39,处理多种异常(Exception)类型,如果含有多外catch语句块,则异常会被第一个与其相匹配的catch语句块处理,2022/11/30,40,格式,在try语句块中包含可能会产生异常的语句 紧接着若干个catch语句块,进行异常处理 catch语句块与finally语句块至少存在一个,try / 可能会抛出异常的代码catch (ExceptionType ref) / 异常处理代码finally / ,2022/1

16、1/30,41,异常处理: 捕捉-或者-声明,如果一个方法调用一个抛出受检异常的方法(含有throws列表的方法),则该方法必须捕捉这些受检异常,或通过throws列表声明这些异常。,2022/11/30,42,throws 列表,在方法的声明处列出所有的受检异常返回类型 方法名( 参数列表 ) throws 异常类型 1, 异常类型 2, / 方法体在本方法内就可以不处理这些异常调用该方法的方法就必须处理这些异常示例:public static void g( ) throws Exception throw new Exception( ); / 方法g结束,2022/11/30,43,重

17、新抛出异常,如果catch语句块不处理某种异常,可以重新抛出异常抛出异常的方法 throw e; 由其外层的try- catch 语句块处理,2022/11/30,44,文件流,包java.io中含有对文件进行处理的类FileInputStream 以字节为单位从文件中输入数据FileOutputStream以字节为单位输出数据到文件中FileReader 以字符为单位读取文件数据FileWriter以字符为单位写数据到文件中随机访问文件RandomAccessFile,2022/11/30,45,文件流,FileInputStream类用来打开一个输入文件,若要打开的文件不存在,则会产生例外

18、FileNotFoundException,这是一个非运行时异常,必须捕获或声明抛弃; FileOutputStream类用来打开一个输出文件,若要打开的文件不存在,则会创建一个新的文件,否则原文件的内容会被新写入的内容所覆盖。 在进行文件的读/写操作时,会产生非运行时异常IOException,必须捕获或声明抛弃(其它的输入/输出流处理时也同样需要进行输入/输出例外处理)。,2022/11/30,46,从文件流的构造方法,FileInputStream(String name) 打开一个文件路径名为name的文件作为输入。FileInputStream(File f) 打开一个以f描述的文件

19、作为输入。FileOutputStream(String name) 创建一个文件路径名为name的文件作为输出,文件如果已经存在,则其内容被清空。FileOutputStream(File f) 创建一个以f描述的文件作为输出,文件如果已经存在,则其内容被清空。FileOutputStream(String name, boolean append) 创建一个文件路径名为name的文件作为输出,文件如果已经存在,则在该输出上输出的内容被接到原有内容之后。,2022/11/30,47,从文件流的构造方法,File f1 = new File(“file1.txt”); File f2 = ne

20、w File(“file2.txt”); FileInputStream in=new FileInputStream(f1); FileOutputStream out=new FileOutputStream(f2); FileOutputStream out=new FileOutputStream(“file3.txt”); 输入流的参数是用于指定输入的文件名,输出流的参数则是用于指定输出的文件名。,2022/11/30,48,随机访问文件,随机访问文件方式可以在指定位置读/写字节内容RandomAccessFile 实例对象同时具有类DataInputStream和类DataOutp

21、utStream的功能类RandomAccessFile实现了接口DataInput和DataOutput类DataInputStream实现了接口DataInput类DataOutputStream实现了接口DataOutput,2022/11/30,49,随机访问文件,RandomAccessFile:提供对文件的随机访问支持。它不是流也不是 InputStream 和OutputStream 的子类。 它直接继承object,并且同时实现了接口DataInput和DataOutput接口,提供了支持随机文件操作的方法: readXXX()或writeXXX():如ReadInt(), R

22、eadLine(), WriteChar(), WriteDouble()等。 int skipBytes(int n):将指针向下移动若干字节 length():返回文件长度 long getFilePointer():返回指针当前位置 void seek(long pos):将指针调到所需位置,2022/11/30,50,随机访问文件,在生成一个随机文件对象时,除了要指明文件对象和文件名之外,还需要指明访问文件的模式。 RandomAccessFile(File file, String mode) RandomAccessFile(String name, String mode) mo

23、de 的取值:“r”只读。 任何写操作都将抛出IOException。“rw”读写。 文件不存在时会创建该文件,文件存在时,原文件内容不变,通过写操作改变文件内容。 “rws”同步读写。等同于读写,但是任何写操作的内容都被直接写入物理文件,包括文件内容和文件属性。“rwd” 数据同步读写。等同于读写,但任何内容写操作都直接写到物理文件,但对文件属性内容的修改不是这样。,2022/11/30,51,随机访问文件,File f = new File(“file.txt”);new RandomAccessFile(f, “r”);new RandomAccessFile(f, “rw”);new

24、RandomAccessFile(“file1.txt”, “r”);new RandomAccessFile(“file2.txt”, “rw”);,swing组件继承关系框图,布局管理器,常用的布局管理器为:流式布局(FlowLayout)方位布局(BorderLayout)网格布局(GridLayout)网格块布局(GridBagLayout)卡片布局(CardLayout)盒式布局(BoxLayout),swing容器默认布局方式,Applet的生命周期,Applet生命周期共有四种状态初始态运行态停止态消亡态四个成员方法:init()start()stop()destroy(),Ap

25、plet的生命周期,实现线程的方法,通过以下两种方法创建 Thread 对象: 声明一个 Thread 类的子类,并覆盖 run() 方法。 class mythread extends Thread public void run( ) /* 覆盖该方法*/ 声明一个实现 Runnable 接口的类,并实现 run() 方法。 class mythread implements Runnable public void run( ) /* 实现该方法*/ ,继承Thread类,线程程序执行代码public void run( )启动线程public void start( ),通过接口Run

26、nable构造线程类,类声明形式public class A extends B implements Runnable / . public void run( ) / . ,通过接口Runnable构造线程类,构造和启动线程的方法A a = new A( );Thread t = new Thread(a);t.start( );,A为实现接口Runnable的类,线程周期,线程周期,新建状态(New) 就绪状态(Runnable) 运行状态(Running) 阻塞状态(Blocked) 终止状态(Dead),线程同步与异步的区别,如何在 Java 中获得同步,两种方式实现同步:使用同步方法synchronized void methodA() 使用同步块synchronized(object) /要同步的语句,对象锁,当想保护一些资源不被多个线程同时访问,可以强制通过synchronized方法访问那些资源。因为线程一旦访问了synchronized方法,对象就进入了“锁定状态”。,线程死锁处理,当两个线程循环依赖于一对同步对象时将发生死锁。例如:线程同步机制唤醒一个排斥的“锁”,只有当前获得锁的那个线程能够执行同步代码。当两个或多个线程都在等待需要的锁时,而这个锁却正在被另一个也在等待的线程占有,死锁就产生了。死锁很少发生,但一旦发生就很难调试。,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号