面对对象程序设计Java复习.ppt

上传人:李司机 文档编号:4113825 上传时间:2023-04-04 格式:PPT 页数:54 大小:1.14MB
返回 下载 相关 举报
面对对象程序设计Java复习.ppt_第1页
第1页 / 共54页
面对对象程序设计Java复习.ppt_第2页
第2页 / 共54页
面对对象程序设计Java复习.ppt_第3页
第3页 / 共54页
面对对象程序设计Java复习.ppt_第4页
第4页 / 共54页
面对对象程序设计Java复习.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《面对对象程序设计Java复习.ppt》由会员分享,可在线阅读,更多相关《面对对象程序设计Java复习.ppt(54页珍藏版)》请在三一办公上搜索。

1、面向对象程序设计Java,第1章 Java 概述,Java 的发展历程理解Java 语言的特点掌握Java 语言的开发工具包:JDK 的配置和使用学会编写简单的Java Application 程序和Java Applet 程序,1.2 Java语言的特点,面向对象所共有的特性:封装、继承、多态。Java语言提供的内存管理机制,有自动搜集“内存垃圾”程序。Java的执行是基于一种抽象的处理器Java虚拟机,Java编译器将Java的源程序编译成JVM可执行的代码字节码.,2023年4月4日星期二,3,1.3 Java语言的开发工具包,Java开发工具包JDK(Java Development

2、Kit)目前JDK的最新版本JDK 7PATH参数设置的含义CLASSPATH参数设置的含义JDK、JRE、JVM的关系常用命令:javac、java、appletviewer、javadoc,2023年4月4日星期二,4,1.4 Java程序的基本结构,扩展名:.java.class Package import class interface执行入口public static void main(String args)String args的含义?,2023年4月4日星期二,5,1.5 Java程序的开发,体会application和applet的区别,2023年4月4日星期二,6,第2

3、章 Java语言基础知识,2023年4月4日星期二,7,2.1 Java程序基本结构,三个基本组成是:一个包声明package语句(可选);任意数量的引入import语句(可选);类和接口声明。在一个Java源程序中,如果有多个类创建,则只能有一个类可以被声明为public(公共)类。若某个类中有main()方法,则声明该类为public类。应该用public修饰的类,即公共类作为源程序的文件名,并需要注意的是文件名要和该类名的大小写保持一致。,2023年4月4日星期二,8,2.2 Java符号集,Java采用的是Unicode码,使用16位存储空间Java的符号分为五种类型:关键字(Keyw

4、ords)标识符(Identifiers)常量(Literals)运算符(Operands)分隔符(Separator),2023年4月4日星期二,9,关键字true、false和null为小写无sizeof运算符不使用goto和const标识符必须由字母、下划线或美元符开头的并由字母、数字、下划线和美元符组成的不能与关键字同名标示符的命名规则:类名、方法名、变量名、常量名,2023年4月4日星期二,10,程序中的注释/注释内容/*注释内容*/*注释内容*/为Java生成JavaDoc文档提供信息数据类型简单类型:整型、浮点型、字符型和布尔型引用类型:数组、类和接口各个数据类型的存储开销和取值

5、范围,2023年4月4日星期二,11,2.4 常量,整数十进制、八进制、十六进制的表示long型的表示浮点数在数字后面带有字母F或f(float)、D或d(double)浮点数中除非明确声明为float,否则为double指数表示方法 E,2023年4月4日星期二,12,字符型常量单引号包括的单个Unicode字符udddd表示的单个Unicode字符表示的转义字符布尔型常量false和true整型类型和boolean类型之间不能相互转换,2023年4月4日星期二,13,2.5 变量和变量声明,变量是语言编程中用来标识贮存地址的名称。程序通过变量名访问所标识的贮存空间的数据。当变量所标识的是简

6、单数据类型,则直接访问其值。当变量所标识的是引用类型,则变量所代表的是堆空间的地址。type identifier=初值,identifier=初值;,2023年4月4日星期二,14,2.6 变量的作用域及初始化,变量的作用域重在理解变量的初始化赋值强制类型转换,2023年4月4日星期二,15,2.7 运算符及表达式,+和-运算符/和%对整数进行运算 区别=与 equal()布尔运算符的优化,2023年4月4日星期二,16,第3章 流程控制、数组,switch和break break blockLabel;continue outerLabel;Java中没有“多维数组”,只有数组的数组长度属

7、性length字符串连接运算符“+”,2023年4月4日星期二,17,第4章 类和对象,2023年4月4日星期二,18,4.1 面向对象程序设计,理解封装、继承、多态理解类、对象、消息,2023年4月4日星期二,19,4.2 类的创建,class前面可使用的修饰符public、abstract、final类的体分为两个部分:类的成员、类的构造器类的成员又包括有成员变量和成员方法类的成员访问控制权限的修饰符有public、protected、private等,使用限制的修饰符有final、abstract、static、transient、volatile等方法参数数据传递:总是值传递,2023

8、年4月4日星期二,20,4.3 方法过载,方法过载也可以称为方法重载。它是指在一个类中有多个方法同名,但是它们的参数必须不同。过载的多个方法可以有相同返回数据类型,也可以有不同返回的数据类型。构造方法也可以过载,2023年4月4日星期二,21,4.4 类的构造方法,构造方法是用类名作构造方法名;构造方法同其它方法一样具有参数和语句体,但是没有返回类型的声明。如果有返回类型声明,则此方法就再不是构造方法,而成为一个一般的成员方法;构造方法不是类的成员方法,所以不能用对象调用它。构造方法的调用是由new运算符实现;构造方法返回的是这个类的实例的引用;构造方法中的语句实现对成员变量的初始化;构造方法

9、也存在方法过载。一个类可以有多个构造方法,而形成构造方法的过载;构造方法之间的相互调用,可以通过this()形式调用。,2023年4月4日星期二,22,默认构造方法是指不带参数的构造方法;非默认构造方法是指带参数的构造方法。类创建时没有创建构造方法,则在编译时系统自动为该类添加一个没有语句的默认构造方法类创建时如果有任何构造方法被创建,则在编译时系统不再为该类创建默认构造方法。,2023年4月4日星期二,23,4.5 类成员和实例成员,类成员是指由static修饰的成员.和.都访问的是同一个成员由于类方法在编译时就能确定它所占用存储空间,所以在类方法中,能够直接访问类中的类成员,但是不能直接访

10、问非类成员,即不能直接访问类的实例成员。实例成员是没有用statice修饰的成员,只能够通过.访问,2023年4月4日星期二,24,4.6 对象,对象和实例的区别声明一个对象就是创建一个变量,其标识符的存储单元保存对类的实例引用的地址。一个声明的对象可以对实例进行引用,实例的创建是通过使用new运算符调用构造方法得到。,2023年4月4日星期二,25,对象创建 objectName=new(parameterList);对象使用objectName.variableobjectName.methodName(parameterList);对象清除Java程序运行时系统通过垃圾收集,周期性地释放

11、不再被对象引用所占用的内存,完成对象的清除。对象在被清除前,自动调用finalize(),2023年4月4日星期二,26,第5章 超类、子类和继承性,2023年4月4日星期二,27,5.1 继承性,单一继承性:子类只能有一个超类,而超类可以有多个子类;子类继承超类的所有成员;子类可以创建自己的成员;子类不能继承超类的构造器,只能在构造器中通过super()调用超类的构造器;子类的构造器首先要调用超类的构造器;多态性之一:子类的成员隐藏和覆盖超类中相同的成员;多态性之二:超类的对象可以对子类的实例引用;由abstract和final修饰的类指示类的是否必须或不能被继承。,2023年4月4日星期二

12、,28,5.2 创建子类,abstract|final class SubClassName extends SuperClassName子类继承了超类的所有成员,但是超类的构造器是不能被继承的,它是通过在子类的构造器中super()形式调用的,并由它来对被继承的超类成员实例化。子类可以继承所有超类的状态和行为,但是因为超类中成员的访问控制,子类无法访问某些受限的成员。,2023年4月4日星期二,29,5.3 成员变量的隐藏和方法覆盖,理解什么叫隐藏(还在,但是访问不了)和覆盖(旧的被新的取代了),2023年4月4日星期二,30,5.4 null,this和super,this表示对类的实例访

13、问,它也表示了对象对该实例引用访问。super用来引用当前对象的超类。它的使用有三种情况:访问被隐藏的超类成员变量;例如:super.varName调用超类中被覆盖的方法;例如:super.methodName(paramList)调用超类中的构造方法;例如:super(paramList),2023年4月4日星期二,31,5.5 运行时的多态,超类的对象可以引用子类的实例对于覆盖或继承的方法,Java运行时系统根据调用该方法的实例的类型来决定选择哪个方法调用。重点理解,2023年4月4日星期二,32,5.7 final类和方法,final 类不能被继承final方法不能被覆盖,2023年4月

14、4日星期二,33,5.8 abstract类和方法,抽象类是指由abstract修饰符声明的类,它不能够被实例化abstract所修饰的方法只有声明,没有方法体如果一个类包含了abstract方法,则该类必须是abstract类abstract可以被继承,子类可以实现abstract方法如果子类实现了全部的abstract方法,则该类可以被声明为非抽象类,2023年4月4日星期二,34,5.9 Object类,Object类是所有类的超类,所以类都继承它的成员方法clone()方法equals()方法toString()方法,2023年4月4日星期二,35,第6章 包、访问控制和接口,2023

15、年4月4日星期二,36,6.1 包,Java语言提供了一些常用的基本类包,如java.io和java.lang。包java.lang中存放的有如System和String类等系统的基础类,会被自动导入。package语句import语句,2023年4月4日星期二,37,6.2 编译和运行包中的类,编译时带-d选项:环境变量classpath,2023年4月4日星期二,38,6.3 访问控制,2023年4月4日星期二,39,6.5 接口,接口中的方法都是由public、static和abstract修饰的抽象方法,而抽象类中则即可以有抽象方法,也可以含有非抽象方法;接口中的变量都是由public

16、、final和static修饰的常量,而抽象类中即可以有一般的成员变量,也可以自己声明的常量;接口实接口可以用extends关键字实现多重继承,而抽象类继承性是类的单一继承,同时也可以实现接口;现的类由关键字implements声明,而抽象类的子类由关键字extends声明;实现接口的类必须实现接口中的所有方法,而抽象类的子类(非抽象类)只必须实现抽象类中的全部的抽象方法;接口中的变量(即常量)可以用接口名直接访问,而抽象类的变量则不完全可以用类名直接访问;接口不是类分级结构的一部分。而没有联系的类可以执行相同的接口。,2023年4月4日星期二,40,第7章 异常处理,采用throw-catc

17、h(抛出-捕获)方式,捕获并处理异常。Java使异常处理标准化,使程序设计思路更清楚,理解更容易。,2023年4月4日星期二,41,7.1 异常类的层次,2023年4月4日星期二,42,常见的异常类ArithmeticException:算术运算中,整数被零除,如int i=12/0;ArrayIndexOutOfBoundsException:访问数组超界异常ArrayStoreException:进行写数组操作时,对象或数据类型不兼容,导致异常。ClassCastException:当试图把对象A转换为对象B时,如果对象A既不是对象B的同类,又非对象B的子类,将产生该异常。IllegalA

18、rgumentException:在方法的参数表中,如果参数无效,将产生异常。IllegalThreadStateException:非法改变线程状态,如启动已执行线程,导致异常。IndexOutOfBoundsException:是ArrayIndexOutOfBoundsException类的超类,它是抽象类。NegativeArraySizeException:创建数组时,规定数组大小的参数是负数,产生异常NullPointerException:试图访问空对象的变量、方法或空数组的元素,产生异常。NumberFormatException:试图把一字符串非法转换成数组(或相反),导致该

19、异常,2023年4月4日星期二,43,7.2 异常处理,try 正常程序段;catch(异常类1 异常变量)与异常类1有关的处理程序段;catch(异常类2 异常变量)与异常类2有关的处理程序段;.finally 退出异常处理程序段;,2023年4月4日星期二,44,7.4 throw语句,主动抛出一个异常实例,2023年4月4日星期二,45,第8章 多线程设计,什么是线程如何新建一个线程(两种方法)线程的状态(四个状态),以及状态转换线程的优先级(1-10,哪个高?),以及如何调整线程同步锁,synchronized线程通信,wait、notify,2023年4月4日星期二,46,第9章 输

20、入输出流,流的基本概念字节流(byte stream):InputStream 和 OutputStream字符流(character stream):Reader和Writer对象序列化:Serializable接口,可以将对象进行输入输出System.in System.out System.err,2023年4月4日星期二,47,第10章 网络编程,以太网、IP、TCP、UDP、WWW、FTP域名、IP地址、socketSocket类和ServerSocket类DatagramPacket类和DatagramSocket类,2023年4月4日星期二,48,第11章 GUI编程,awt和S

21、wingApplet的生命周期容器(Frame、Panel、Dialog等)、部件(Button、Canvas、Checkbox、Choice、Label、List、Scrollbar、TextArea、TextField等)和布局管理器(FlowLayout、BorderLayout等)选择容器。为容器选择一种布置管理器。将部件加入到容器中。,2023年4月4日星期二,49,第13章 AWT事件处理,什么叫做事件?委托事件模型:事件源:产生事件的对象;事件处理器(监听器):负责处理事件的方法。当事件源产生事件时,通过事件调用监听器相应的事件处理方法。ActionEvent事件、ActionL

22、istener监听接口、actionPerformed(ActionEvent)事件处理方法,2023年4月4日星期二,50,编程练习,有两个类Person和Student,它们存在继承关系。在Person中,有成员变量name,sex,age三个,它们类型分别为String、char、int,有一个带参数的构造方法Person(String,char,int),用来对成员变量初始化。有成员方法setData(String,char,int)设置成员变量name,sex,age的值。getData()是不带参数且返回值由name、sex和age值构成的字符串的成员方法。Student类是Per

23、son类的子类,在Student中,有int类型的sID和classNo成员变量用来表示学生的学号和班级号。它有带五个参数的方法setData()和不带参数的方法getData(),setData()方法设置成员变量的值,而getData()则是返回五个成员变量的值组成的字符串。,2023年4月4日星期二,51,编程练习,抽象类Person如下定义:abstract class PersonString name;char sex;int age;abstract void setData(String name,char sex,int age);abstract String getDet

24、ail();类Student和类Teacher均是abstract类Person的子类。类Student有成员变量name,sex,age,sID,speciality,其中sID表示学生的学号,speciality表示学生专业。类Teacher有成员变量name,sex,age,tID,department,其中tID表示教师的编号,department表示教师所在的部门。请编写出类Student和Teacher所需要的最基本构成。,2023年4月4日星期二,52,编程练习,创建Person接口(即“人”),它有setData()和getData()方法对“人”属性name、sex和birthday赋值和获得这些属性组成的字符串信息。创建类Student实现Person接口,并对自己的“学生”属性的成员变量sID、speciality设置值和获得它们值所组成的字符串信息。,2023年4月4日星期二,53,THE END,祝大家取得好成绩!,2023年4月4日星期二,54,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号