《面对对象程序设计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日星期二31.3 Java语言的开发工具包 Java开发工具包JDK(Java Development
2、Kit) 目前JDK的最新版本JDK 7 PATH参数设置的含义 CLASSPATH参数设置的含义 JDK、JRE、JVM的关系 常用命令:javac、java、appletviewer、javadoc2023年4月4日星期二41.4 Java程序的基本结构 扩展名: .java .class Package import class interface 执行入口 public static void main(String args) String args的含义?的含义?2023年4月4日星期二51.5 Java程序的开发 体会application和applet的区别2023年4月4日星
3、期二6第第2章章 Java语言基础知识语言基础知识2023年4月4日星期二72.1 Java程序基本结构 三个基本组成是: 一个包声明package语句(可选); 任意数量的引入import语句(可选); 类和接口声明。 在一个Java源程序中,如果有多个类创建,则只能有一个类可以被声明为public(公共)类。若某个类中有main()方法,则声明该类为public类。 应该用public修饰的类,即公共类作为源程序的文件名,并需要注意的是文件名要和该类名的大小写保持一致。 2023年4月4日星期二82.2 Java符号集 Java采用的是Unicode码,使用16位存储空间 Java的符号分
4、为五种类型: 关键字(Keywords) 标识符(Identifiers) 常量(Literals) 运算符(Operands) 分隔符(Separator)2023年4月4日星期二9 关键字 true、false和null为小写 无sizeof运算符 不使用goto和const 标识符标识符 必须由字母、下划线或美元符开头的 并由字母、数字、下划线和美元符组成的 不能与关键字同名 标示符的命名规则:类名、方法名、变量名、常量名2023年4月4日星期二10 程序中的注释程序中的注释 /注释内容 /*注释内容*/ /*注释内容*/ 为Java生成JavaDoc文档提供信息 数据类型 简单类型:整
5、型、浮点型、字符型和布尔型 引用类型:数组、类和接口 各个数据类型的存储开销和取值范围2023年4月4日星期二112.4 常量 整数 十进制、八进制、十六进制的表示 long型的表示 浮点数浮点数 在数字后面带有字母F或f(float)、D或d(double) 浮点数中除非明确声明为float,否则为double 指数表示方法 E2023年4月4日星期二12 字符型常量字符型常量 单引号包括的单个Unicode字符 udddd表示的单个Unicode字符 表示的转义字符 布尔型常量布尔型常量 false和true 整型类型和boolean类型之间不能相互转换2023年4月4日星期二132.5
6、变量和变量声明 变量是语言编程中用来标识贮存地址的名称。程序通过变量名访问所标识的贮存空间的数据。当变量所标识的是简单数据类型,则直接访问其值。当变量所标识的是引用类型,则变量所代表的是堆空间的地址。 type identifier=初值初值 ,identifier=初值初值; 2023年4月4日星期二142.6 变量的作用域及初始化 变量的作用域重在理解 变量的初始化 赋值 强制类型转换2023年4月4日星期二152.7 运算符及表达式 +和-运算符 /和% 对整数进行运算 区别 = 与 equal() 布尔运算符的优化2023年4月4日星期二16第第3章章 流程控制、数组流程控制、数组 s
7、witch和和break break blockLabel; continue outerLabel; Java中没有“多维数组”,只有数组的数组 长度属性length 字符串连接运算符“+”2023年4月4日星期二17第第4章章 类和对象类和对象2023年4月4日星期二184.1 面向对象程序设计 理解封装、继承、多态 理解类、对象、消息2023年4月4日星期二194.2 类的创建 class前面可使用的修饰符public、abstract、final 类的体分为两个部分:类的成员、类的构造器 类的成员又包括有成员变量和成员方法 类的成员访问控制权限的修饰符有public、protected
8、、private等,使用限制的修饰符有final、abstract、static、transient、volatile等 方法参数数据传递:总是值传递2023年4月4日星期二204.3 方法过载 方法过载也可以称为方法重载。它是指在一个类中有多个方法同名,但是它们的参数必须不同。 过载的多个方法可以有相同返回数据类型,也可以有不同返回的数据类型。 构造方法也可以过载2023年4月4日星期二214.4 类的构造方法 构造方法是用类名作构造方法名; 构造方法同其它方法一样具有参数和语句体,但是没有返回类型的声明。如果有返回类型声明,则此方法就再不是构造方法,而成为一个一般的成员方法; 构造方法不是
9、类的成员方法,所以不能用对象调用它。 构造方法的调用是由new运算符实现; 构造方法返回的是这个类的实例的引用; 构造方法中的语句实现对成员变量的初始化; 构造方法也存在方法过载。一个类可以有多个构造方法,而形成构造方法的过载; 构造方法之间的相互调用,可以通过this()形式调用。2023年4月4日星期二22 默认构造方法是指不带参数的构造方法; 非默认构造方法是指带参数的构造方法。 类创建时没有创建构造方法,则在编译时系统自动为该类添加一个没有语句的默认构造方法 类创建时如果有任何构造方法被创建,则在编译时系统不再为该类创建默认构造方法。2023年4月4日星期二234.5 类成员和实例成员
10、 类成员是指由static修饰的成员 .和.都访问的是同一个成员 由于类方法在编译时就能确定它所占用存储空间,所以在类方法中,能够直接访问类中的类成员,但是不能直接访问非类成员,即不能直接访问类的实例成员。 实例成员是没有用statice修饰的成员,只能够通过.访问2023年4月4日星期二244.6 对象 对象和实例的区别 声明一个对象就是创建一个变量,其标识符的存储单元保存对类的实例引用的地址。 一个声明的对象可以对实例进行引用,实例的创建是通过使用new运算符调用构造方法得到。2023年4月4日星期二25 对象创建 objectName = new (parameterList); 对象使
11、用 objectName.variable objectName.methodName(parameterList); 对象清除 Java程序运行时系统通过垃圾收集,周期性地释放不再被对象引用所占用的内存,完成对象的清除。 对象在被清除前,自动调用finalize()2023年4月4日星期二26第5章 超类、子类和继承性2023年4月4日星期二275.1 继承性 单一继承性:子类只能有一个超类,而超类可以有多个子类; 子类继承超类的所有成员; 子类可以创建自己的成员; 子类不能继承超类的构造器,只能在构造器中通过super()调用超类的构造器; 子类的构造器首先要调用超类的构造器; 多态性之一
12、:子类的成员隐藏和覆盖超类中相同的成员; 多态性之二:超类的对象可以对子类的实例引用; 由abstract和final修饰的类指示类的是否必须或不能被继承。2023年4月4日星期二285.2 创建子类 abstract|final class SubClassName extends SuperClassName 子类继承了超类的所有成员,但是超类的构造器是不能被继承的,它是通过在子类的构造器中super()形式调用的,并由它来对被继承的超类成员实例化。 子类可以继承所有超类的状态和行为,但是因为超类中成员的访问控制,子类无法访问某些受限的成员。2023年4月4日星期二295.3 成员变量的隐
13、藏和方法覆盖 理解什么叫隐藏(还在,但是访问不了)和覆盖(旧的被新的取代了)2023年4月4日星期二305.4 null,this和super this表示对类的实例访问,它也表示了对象对该实例引用访问。 super用来引用当前对象的超类。它的使用有三种情况: 访问被隐藏的超类成员变量; 例如: super.varName 调用超类中被覆盖的方法; 例如: super.methodName(paramList) 调用超类中的构造方法; 例如:super(paramList)2023年4月4日星期二315.5 运行时的多态 超类的对象可以引用子类的实例 对于覆盖或继承的方法,Java运行时系统根
14、据调用该方法的实例的类型来决定选择哪个方法调用。 重点理解2023年4月4日星期二325.7 final类和方法 final 类不能被继承 final方法不能被覆盖2023年4月4日星期二335.8 abstract类和方法 抽象类是指由abstract修饰符声明的类,它不能够被实例化 abstract所修饰的方法只有声明,没有方法体 如果一个类包含了abstract方法,则该类必须是abstract类 abstract可以被继承,子类可以实现abstract方法 如果子类实现了全部的abstract方法,则该类可以被声明为非抽象类2023年4月4日星期二345.9 Object类 Objec
15、t类是所有类的超类,所以类都继承它的成员方法 clone()方法 equals()方法 toString()方法2023年4月4日星期二35第6章 包、访问控制和接口2023年4月4日星期二366.1 包 Java语言提供了一些常用的基本类包,如java.io和java.lang。包java.lang中存放的有如System和String类等系统的基础类,会被自动导入。 package语句 import语句2023年4月4日星期二376.2 编译和运行包中的类 编译时带-d选项: 环境变量classpath2023年4月4日星期二386.3 访问控制2023年4月4日星期二39同一类中同一包中
16、不同包中子类不同包中非子类publicprotected缺省private6.5 接口 接口中的方法都是由public、static和abstract修饰的抽象方法,而抽象类中则即可以有抽象方法,也可以含有非抽象方法; 接口中的变量都是由public、final和static修饰的常量,而抽象类中即可以有一般的成员变量,也可以自己声明的常量; 接口实接口可以用extends关键字实现多重继承,而抽象类继承性是类的单一继承,同时也可以实现接口; 现的类由关键字implements声明,而抽象类的子类由关键字extends声明; 实现接口的类必须实现接口中的所有方法,而抽象类的子类(非抽象类)只必须实现抽象类中的全部的抽象方法; 接口中的变量(即常量)可以用接口名直接访问,而抽象类的变量则不完全可以用类名直接访问; 接口不是类分级结构的一部分。而没有联系的类可以执行相同的接口。2023年4月4日星期二40第7章 异常处理 采用throw-catch(抛出 - 捕获)方式,捕获并处理异常。Java使异常处理标准化,使程序设计思路更清楚,理解更容易。2023年4月4日星期二417.1 异常类的