java期末复习提纲.ppt

上传人:w****2 文档编号:16066556 上传时间:2020-09-17 格式:PPT 页数:75 大小:1.79MB
收藏 版权申诉 举报 下载
java期末复习提纲.ppt_第1页
第1页 / 共75页
java期末复习提纲.ppt_第2页
第2页 / 共75页
java期末复习提纲.ppt_第3页
第3页 / 共75页
资源描述:

《java期末复习提纲.ppt》由会员分享,可在线阅读,更多相关《java期末复习提纲.ppt(75页珍藏版)》请在装配图网上搜索。

1、面向对象程序设计,第2章 Java概述,1、JDK的安装及环境变量的设置。 path、classpath 2、Java程序的运行过程。 虚拟机、字节码,第3章 Java基本数据类型,自动类型转换,强制类型转换,当程序需要从高级向低级转换数据类型时,就必须实施强制性的类型转换,其语法如图3.21所示。,流程控制,选择:if语句、ifelse语句、 ifelse ifelse语句、 switch语句 循环:while循环、dowhile循环、for循环 跳转语句: break语句、continue语句 带标签的语句,第4章 类和对象,1、面向对象的程序有着抽象、封装、继承和多态四大特点。 2、Ja

2、va类模板,public class 类名 /定义属性部分 属性1的类型 属性1; 属性2的类型 属性2; 属性n的类型 属性n; /定义方法部分 方法1; 方法2; 方法m; ,类定义的语法规范,类的修饰符: public abstract | final 缺省方式为 friendly,标识符,标识符是指程序中类、变量、常量、方法等的名字。对类、方法等进行定义和引用时,就需要用到标识符。标识符的命名规则如图所示。,对象的声明,使用对象,我们首先要对其进行声明。实例化对象的声明形式如图所示。,对象的使用,使用对象,主要是通过对象来访问对象里的某个成员字段或方法,它的语法大致如图所示。,12,f

3、inal到此为止,final在类之前 表示该类是最终类,不能再被继承。 final在方法之前 表示该方法是最终方法,该方法不能被任何派生的子类覆盖。 final在变量之前 表示变量的值在初始化之后就不能在改变;相当于定义了一个常量。,方法的原理,一般方法的运用原理大致如图4.1所示。 我们可以把方法看成一个“黑盒子”,方法的使用者(对象)只要将数据送进去就能得到结果,而不用管其是如何工作的。当我们需要改变状态时,就由对象去调用方法,方法通过执行,再将结果返回。这就是方法的运用原理。,如何定义类的方法,类的方法定义类的某种行为(或功能),方法的名称,方法的主体,方法返回的数据类型,定义类的方法,

4、public 返回值类型 方法名() /这里编写方法的主体 ,步骤一:定义方法名以及返回值,步骤二:编写方法体,方法的返回值,如果方法具有返回值,方法中必须使用关键字return返回该值,返回类型为该返回值的类型 如果方法没有返回值,返回类型为void,public class Student String name = 张三; public void getName() return name; ,返回类型要匹配,return 表达式;,编译错误,调用方法,方法调用,方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果 方法调用:执行方法中包含的语句,对象名.方法名();,形参与实参的

5、关系,1、形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。 2、实参和形参在数量上,类型上、顺序上应严格一致,否则就会发生类型不匹配的错误,如图4.15所示。,可在类中直接运用的字段-static关键字,首先我们来看static的用法。字段可以分为静态字段和非静态字段。静态字段可以通过类来访问,非静态字段需要通过对象来访问。静态字段用static关键字来修饰,其语法格式如图3.29所示。,20,static类变量,static 用在变量或方法之前,表明它们是属于类的,称为类方法(静态方

6、法)或类变量(静态变量)。若无static修饰,则变量和方法分别是实例的方法和变量。,class ABCD char data; static int share_data; class Demo ABCD a,b,c,d; ,静态方法与非静态方法,前面已经介绍过,成员字段分为静态字段和非静态字段。其实方法也可以分为静态方法和非静态方法。其中,非静态方法必须在类实例化之后通过对象来调用,而静态方法可以在类实例化之前就使用。 使用了static修饰符的方法为静态方法,其定义格式如图所示。 没有使用static修饰的即为非静态方法。,静态方法与非静态方法,静态方法与非静态方法的区别主要体现在以下两

7、个方面: 外部调用静态方法时,可以使用“类名.方法名”的方式,也可以使用“对象名.方法名”的方式。而非静态方法只有后面的这种形式。即调用静态方法无需创建对象。 静态方法在访问本类的成员时,只允许访问静态方法,而不许访问非静态方法。非静态方法则无此限制。,构造方法,在使用构造方法的时候需要注意以下几点: 构造方法的名字必须和类的名字完全相同。 构造方法没有返回值。 尽管没有返回值,其也不能用“void”修饰 构造方法不能用static和final来修饰。 一个类可以定义多个构造方法 在Java语言中,如果没有为类定义构造方法,那么会由编译器会自动调用一个默认的没有任何操作的无参数的构造方法以保证

8、对象可以得到正确的初始化。,第5章 数组,若想存放一连串相关的数据,使用数组是一个相当好的选择。首先我们来对数组进行声明,数组声明的格式如图6.3所示。,一维数组的声明,一维数组的初始化,数组必须在访问之前进行初始化,数组的初始化有两种方式。第一种方式是以字面形式指定数组的完整内容。 int score= 15,32,65,14,27; 第二种方式是指定数组的大小,再使用new关键字初始化所有数组元素。,数组length属性的使用,Java中,对于每个数组都有一个属性length来指明其长度 。 如:int a=1,2,3; a.length就指明了数组list的长度 使用length属性表示

9、数组长度会给程序带来很大的灵活性,使得处理数组的代码与数组的长度没有关系。,二维数组的声明和初始化,二维数组是最常见的多维数组,它由行和列组成。每行包含相同的列数。二维数组的初始化与一维的没有多大区别,只是变成了两个下标,两边需标明数组的行数和列数,二维数组的声明格式与初始化如下图所示。,二维数组的初始化,1、静态初始化 int a=1,2,2,3,3,4,5; int b32=1,2,2,3,3,4;/非法 2、动态初始化 int a=new int35; /对称二维数组 int b=new int 3; /不对称二维数组 b0=new int2; b1=new int3; b2=new i

10、nt5;,创建字符串,Java中创建字符串主要有两种形式:一种是直接使用字符串常量创建字符串变量,另一种是使用new关键字创建字符串变量。具体形式如下图所示。 String类位于java.lang包中,具有丰富的方法 计算字符串的长度 连接字符串 比较字符串(内容相等equals) 提取字符串(indexOf()、lastIndexOf()、substring()、),StringBuffer类的声明和创建,由于String对象中存放的字符串是不能修改的,所以如果要求频繁增加、删除和修改字符串中的某些字符,那么用String就不是很方便。在这种情况下,可以使用StringBuffer类。 创建

11、StringBuffer对象,首先要进行声明,声明的一般形式如下图所示。,第8章 继承与多态,第6章 继承的实现,访问修饰符,在编写程序的过程中,我们有时并不想父类所有的成员都被子类继承,这时就可以通过访问修饰符去限制继承和可访问权限。 我们先通过一个表大概了解一下有哪些修饰符以及它们对外部类和子类的可见性,如下表所示。,33,访问修饰符,访问修饰符可访问性,方法的覆盖,方法的覆盖也是我们经常会遇到的情况。所谓“覆盖”,就是方法名称相同,但却在不同的场合做不同的事。当一个子类继承一个父类中的方法的名称、参数、类型等都完全一致时,就称子类中的这个方法覆盖了父类中的方法。同样,如果子类中重新定义了

12、父类中已有的字段,则称子类的字段覆盖了父类中的字段。,方法的覆盖格式,方法覆盖的语法格式如图8.11所示。,36,子类对父类方法的覆盖,如果子类声明了一个与父类的成员方法同名的成员方法,则称父类的该成员方法被重写或覆盖(overriding) 方法覆盖是Java实现多态性机制的另一种方式。 出现方法覆盖时,同样可通过this和super来区分是父类方法还是子类方法。 方法覆盖规则: 1.方法名、参数个数、对应参数类型一样,也称为方法签名一样; 2.返回值类型一样; 3.子类方法的访问控制较父类方法访问控制修饰更松;,super关键字,在Java的方法覆盖中我们经常要用到一个特殊的关键字supe

13、r关键字。super关键字的主要功能是完成子类在覆盖了父类中的方法后,调用子类所复制的父类的字段和方法。其语法格式如下图所示。 我们还可以使用super调用父类中的构造方法,这也是super在程序中经常要用到的作用。,几种不能使用方法覆盖的情况,并不是所有的方法都是可以被覆盖的。有时我们也需要子类不能覆盖父类的方法。一般情况下,有三种方法不能被子类覆盖,分别是:static方法、final方法和final类中的方法。为了使大家更好地理解这三种情况,我们分别举一个例子来说明。 1. static方法 2. final方法 3. final类中的方法,方法的重载,方法的重载就是在同一个类中允许同时

14、存在一个以上的同名方法,只要它们的参数个数或类型不同即可,在这种情况下,该方法就叫被重载了,这个过程称为方法的重载。与方法的覆盖不同,重载不是子类对父类同名方法的重新定义,而是类对自身已有的同名方法的重新定义。,如何实现多态,1、子类重写父类的方法 2、编写方法时,使用父类定义的方法 3、运行时,根据实际创建的对象类型动态决定使用哪个方法,40,41,方法修饰符,42,static 修饰符,调用静态方法的语法为: classname.methodname( );,43,final 修饰符,44,abstract 修饰符,抽象类可以具有指向子类对象的对象引用,45,抽象类,抽象类:用abstra

15、ct关键字来修饰一个类时,该类叫做抽象类; 抽象类必须被继承。 抽象类不能被直接实例化。它只能作为其它类的超类,这一点与最终类(final类)正好相反。 抽象方法:用abstract来修饰一个方法时,该方法叫做抽象方法。 抽象方法必须被重写 抽象方法只有声明,不能有实现。 定义了抽象方法的类必须是抽象类。 abstract returnType abstractMethod ( paramlist );,46,接口定义的形式,public interface interfaceName extends SuperInterfaceList /常量定义和方法定义 ,接口(interface)作为

16、特殊形式的抽象类,和类(class)在使用上具有类似的约束。 一个public接口只能定义在同名的.java文件中,47,类对接口的实现,用implements子句来表示一个类实现某个接口。 在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。 利用接口可实现多重继承,即一个类可以实现多个接口,在implements子句中用逗号分隔。 接口的作用和抽象类相似,只定义原型,不直接定义方法的内容。 接口中的方法和变量都必须是public的。,第8章 Java的异常处理,49,try-catch-finally 块的执行流程,try 块,finally 块,catch 块,无异常,异

17、常,try / 要监控错误的代码块 methodGeneratingException(); catch (Exception e) / Exception e 的异常处理程序 finally / 在 try 结束前要执行的代码块 cleanup(); ,50,使用 throw 和 throws,处理异常,被调用的方法,调用方法,处理异常,可能会导致异常,防止被调用的方法出现 异常并处理异常,type calledmethod-name (parameter-list) throws exception-list / body of method ,type callingmethod-nam

18、e try / statements calledmethod-name(); catch(Exception e) /statements ,第11章 多线程,第9章 多线程,1、用Thread类的子类创建线程 Thread类包含了线程运行所需要的方法,继承Thread类后就重写run()方法 2、用Runnable接口创建线程 Runnable接口中只有一个run( )方法,实现该接口的类必须实现接口中的run( )方法,在其中定义具体操作。 使用Thread类的一个构造方法public Thread(Runnable target)来创建一个新的线程 ,其中创建参数target的类负责实

19、现Runnable接口,线程的状态 一个进程中的所有线程共享该进程的状态。同进程一样,一个线程也有从创建、运行到消亡的过程,称为线程的生命周期。用线程的状态(state)表明线程处在生命周期的哪个阶段。通过线程的控制与调度可使线程在这几种状态间转化。状态如下图所示:,线程的睡眠方法,sleep()方法是一个静态的方法,所以sleep()方法不是依赖于某一个对象的,位置比较随意,当在线程中执行sleep()方法,则线程就进入睡眠状态。sleep()方法是可能发生捕获异常的,所以在使用sleep()方法时必须进行异常处理。,第13章 集合框架,第10章 Java的输入输出流,数据的输入/输出属于I

20、O部分,Java把处理输入/输出相关的类放在java.io包中。而且java.io不属于java.lang,所以必须使用import将其导入进来。,File类,File类是一个可以对文件本身的属性进行操作的类。例如,可以使用File类中的方法获取文件或者目录的信息,还可以对文件进行创建、修改和删除等操作。File类除了对文件进行操作外,Java允许使用File类将目录当作文件进行处理。File类构造方法如图15.4所示。,RandomAccessFile类,除了File类以外,Java还提供了用来专门处理文件的类,并称之为随机访问文件RandomAccessFile类。该类提供了更加完善的、对

21、文件输入输出操作的功能。RandomAccessFile类可以在任意位置进行读写操作,处理文件更加灵活。RandomAccessFile类的构造方法如图15.10所示。,第11章 集合框架,迭代器(Iterator),迭代器是按次序一个一个地获取集合中所有的对象,是访问集合中每个元素的标准机制 迭代器的创建: Iterator it=test.iterator(); /test是一个集合的对象 常用方法 next() /返回迭代的下一个元素 hasNext() /若有下一个可以通过调用next()获取的对象就返回true remove(): 删除上次访问返回的对象,List接口,List接口是

22、包含有序元素的一种Collection子接口,其中的元素必须按序存放。元素之间的顺序关系可以由插入的时间先后决定。 List接口使用类似于数组下标的索引的概念表示元素在List 中的位置。用户能够使用索引来访问List 中的元素。索引从0开始。为了保持元素的有序的特性,List接口新增加了大量的方法,使之能够在序列中间根据具体位置添加和删除元素。,ArrayList类,ArrayList类是List接口的一个可变长数组(顺序存储结构),的实现,即一个ArrayList类对象可以动态改变大小。每个ArrayList类对象都有一个容量(Capacity),用于存储元素的数组的大小。容量可随着不断添

23、加新元素而自动增加。 ArrayList以初始长度创建,当长度超过时,集合自动变大;当删除对象时,集合自动变小。集合中允许存储null值。ArrayList类的随机访问(set、get)速度快,但是向表中插入和删除比较慢。当需要插入大量元素时,在插入前可以调用ensureCapacity 方法来增加ArrayList 的容量以提高插入效率。,ArrayList类的主要方法与功能描述,第12章 JDBC数据库编程,JDBC允许任何使用Java语言编写的小应用程序或应用程序访问数据库。通过使用SQL语句可以对数据库中的数据进行相应的插入、删除和更新操作。JDBC由Java语言编写的相关类和接口组成

24、。,JDBC简介,表中类或接口的作用如下图所示。,JDBC数据库的连接,使用Java与数据库连接进行数据存取的过程如图所示。,JDBC数据库的连接,(1)首先要加载当前数据源的驱动程序。通常使用Class.forName()方法加载,其加载方法如图所示。 (2)建立数据库的连接。可以通过DriverManager类中的getConnection方法来实现与数据库的连接,其连接方法如图所示。,Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver); Connection Conn= DriverManager.getConnecti

25、on(jdbc:sqlserver:/localhost:1433; DatabaseName=shop,sa,123);,JDBC数据库的连接,(3)建立连接后就可以使用SQL语句对数据库进行访问。这就需要创建Statement对象。通过该对象可以执行相应的SQL语句并将其操作于数据库,其创建方法如图所示。 (4)将SQL语句执行后的结果返回。执行的查询结果可以以ResultSet结果集的形式返回,其返回方式如图所示。,JDBC数据库的连接,(5)对结果集进进行处理。例如,我们可以通过使用一个while循序获得结果集中的所有记录,如图所示。 (6)关闭数据库的连接。在执行完数据库的操作之后,

26、需要将与数据库连接有关的对象关闭。主要包括Statement对象、Connection对象等。关闭方法如图17.20所示。,第13章 图形界面编程,Java为了实现跨平台的特性并且获得动态的布局效果,Java将容器内的所有组件安排给一个布局管理器负责管理,如:排列顺序,组件的大小、位置,当窗口移动或调整大小后组件如何变化等功能授权给对应的容器布局管理器来管理,不同的布局管理器使用不同算法和策略,容器可以通过选择不同的布局管理器来决定布局。 布局管理器主要包括:FlowLayout,BorderLayout,GridLayout,CardLayout,GridBagLayout:,LayoutM

27、anager 布局管理器,69,AWT事件处理模型,要能够让图形界面接收用户的操作,就必须给各个组件加上事件处理机制。在事件处理的过程中,主要涉及三类对象: Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 Event handler-事件处理者,接收事件对象并对其进行处理的对象。,70,事件及处理机制,调用按扭的 addActionListener ( ) 方法,为该按扭指定监听者。,71,事件类, 低级事件ComponentEven

28、t( 组件事件:组件尺寸的变化,移动) ContainerEvent( 容器事件:组件增加,移动) WindowEvent( 窗口事件:关闭窗口,窗口闭合,图标化) FocusEvent( 焦点事件:焦点的获得和丢失) KeyEvent( 键盘事件:键按下、释放) MouseEvent( 鼠标事件:鼠标单击,移动) 高级事件(语义事件)ActionEvent(动作事件:按钮按下,TextField中按Enter键)AdjustmentEvent(调节事件:在滚动条上移动滑块以调节数值)ItemEvent(项目事件:选择项目,不选择项目改变)TextEvent(文本事件,文本对象改变),72,事

29、件监听器,每类事件都有对应的事件监听器,监听器是接口,根据动作来定义方法。 AWT的组件类中提供注册和注销监听器的方法: 注册监听器:public void add (listener); 注销监听器:public void remove (listener); 例如Button类:(查API)public class Button extends Component public synchronized void addActionListener(ActionListener l);public synchronized void removeActionListener(ActionL

30、istener l);,73,事件适配器,Java语言为一些Listener接口提供了适配器(Adapter)类。可以通过继承事件所对应的Adapter类,重写需要方法,无关方法不用实现。事件适配器为我们提供了一种简单的实现监听器的手段, 可以缩短程序代码。但是,由于java的单一继承机制,当需要多种监听器或此类已有父类时,就无法采用事件适配器了。,74,Swing组件的分类,组件从功能上分可分为:1) 顶层容器:JFrame,JApplet,JDialog,JWindow共4个2) 中间容器:JPanel,JScrollPane,JSplitPane,JToolBar3) 特殊容器:在GUI

31、上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane.4) 基本控件:实现人际交互的组件,如Jbutton, JComboBox, JList, JMenu, JSlider, JtextField。5) 不可编辑信息的显示:向用户显示不可编辑信息的组件,例如JLabel, JProgressBar, ToolTip。6) 可编辑信息的显示:向用户显示能被编辑的格式化信息的组件,如JColorChooser, JFileChoose, JFileChooser, Jtable, JtextArea。,75,使用Swing的基本规则,与AWT组件不同

32、,Swing组件不能直接添加到顶层容器中,它必须添加到一个与Swing顶层容器相关联的内容面板(content pane)上。内容面板是顶层容器包含的一个普通容器,它是一个轻量级组件。基本规则如下:(1)把Swing组件放入一个顶层Swing容器的内容面板上(2)避免使用非Swing的重量级组件。 对JFrame添加组件有两种方式:1) 用getContentPane( )方法获得JFrame的内容面板,再对其加入组件:frame.getContentPane().add(childComponent)2) 建立一个Jpanel或 JDesktopPane之类的中间容器,把组件添加到容器中,用setContentPane()方法把该容器置为JFrame的内容面板:Jpanel contentPane=new Jpanel( );/把其它组件添加到Jpanel中;frame.setContentPane(contentPane); /把contentPane对象设置成为frame的内容面板,

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!