《Java语言程序设计》期末复习提纲2013

上传人:xins****2008 文档编号:122441868 上传时间:2022-07-20 格式:DOC 页数:23 大小:213.44KB
收藏 版权申诉 举报 下载
《Java语言程序设计》期末复习提纲2013_第1页
第1页 / 共23页
《Java语言程序设计》期末复习提纲2013_第2页
第2页 / 共23页
《Java语言程序设计》期末复习提纲2013_第3页
第3页 / 共23页
资源描述:

《《Java语言程序设计》期末复习提纲2013》由会员分享,可在线阅读,更多相关《《Java语言程序设计》期末复习提纲2013(23页珍藏版)》请在装配图网上搜索。

1、Java语言程序设计期末复习提纲2013-05第1章 绪论1、Java语言的特点(PPT和课本)JAVA是一种“简单、面向对象、分布式、解释型、健壮、安全、体系结构中立、可移植、高性能和动态”的编程语言1.Java的简单性是以增加系统的复杂性为代价的。2.Java 是面向对象的。面向对象的编程语言支持三个概念:封装、多态性和继承3.分布式: 数据分布支持: 通过Java的URL类可以访问网上的各类信息资源,访问方式完全类似于本地文件系统; 操作分布支持: 通过在web页面中的小应用程序(Applet)将计算从服务器分布至客户机,避免网络拥挤,提高系统效率。4.Java程序是半编译、半解释的。J

2、ava源程序经编译器编译后产生字节码(bytecode),Java解释器解释执行字节码 。优点: u 兼具编译执行的效率优势和解释执行的灵活性; u 提高了应用程序的可移植性:源程序、中间代码5.平台无关性/可移植性=“一次编程,到处运行”- WORA( Write Once,Run Anywhere)=程序的可移植性:指程序不经过修改而在不同的硬件或软件平台上运行的特性。=可移植性在一定程度上决定了程序的可应用性。=可移植性包括二个层次:源代码级和二进制级的可移植性。= C、C+仅有一定的源代码级的可移植性。=Java可移植性源于两方面: u Java的半编译、半解释的特征 u Java采用

3、标准的独立于硬件平台的数据类型6.安全性: 在语言和运行环境中引入了多级安全措施: Java的内存分配和引用模型对于程序员透明,完全由底层的运行系统控制; 内存布局与C、 C+不同,不是由编译器决定,而是运行系统根据所在的硬件平台的特性决定; 取消了C、C+的指针,JAVA编译器通过符号指针来引用内存,由JAVA运行系统在运行时将符号指针具体解释为实际的内存地址。 字节码验证 运行系统引入字节码验证器,其中包含简单的规则验证程序,以确保遵循下列规则: 不存在伪造的指针; 未违反访问权限; 严格遵循对象访问规范来访问对象; 合适的参数调用方法; 没有栈溢出7.多线程: JAVA在语言级嵌入对并发

4、的支持功能,具体机制就是多线程。 线程是比进程更小、效率更高的并发执行单位,不拥有单独的内存空间。 JAVA线程执行中被映射到实际的操作系统线程。8.健壮: Java致力于检查程序在编译和运行时的错误。 运行错误的处理机制 内存的垃圾收集机制 不使用指针操作2、JDK环境配置(PPT和课本): path=%path%;C:jdk1.6.0_27bin classpath= .;C:jdk1.6.0_27lib JAVA_HOME: 该环境变量的值就是 Java 所在的目录,一些 Java 版的软件和一些 Java 的工具需要用到该变量,设置 PATH 和 CLASSPATH 的时候,也可以使用

5、该变量以方便设置。 PATH: 指定一个路径列表,用于搜索可执行文件的。执行一个可执行文件时,如果该文件不能在当前路径下找到,则依次寻找 PATH 中的每一个路径,直至找到。或者找完 PATH 中的路径也不能找到,则报错。Java 的编译命令 (javac),执行命令 (java) 和一些工具命令 (javadoc, jdb 等) 都在其安装路径下的 bin 目录中。因此我们应该将该路径添加到 PATH 变量中。 CLASSPATH: 也指定一个路径列表,是用于搜索 Java 编译或者运行时需要用到的类。在 CLASSPATH 列表中除了可以包含路径外,还可以包含 .jar 文件。Java 查

6、找类时会把这个 .jar 文件当作一个目录来进行查找。通常,我们需要把 JDK 安装路径下的 jre/lib/rt.jar (Linux: jre/lib/rt.jar) 包含在 CLASSPATH 中。 PATH 和 CLASSPATH 都指定路径列表,列表中的各项 (即各个路径) 之间使用分隔符分隔。在 Windows 下,分隔符是分号 (;),而在 Linux 下,分隔符是冒号 (:)。3. Java程序的基本开发步骤:编辑、编译和运行4Java程序的类型 application它们类似于传统的C和C+ 程序 applets这些程序运行在网页上并且需要一个驱动的浏览器。如:Sun 的 H

7、otJava,Microsoft 的IE,Firefox等 ServletsServlets没有图形化的用户界面。它们普遍用于扩展Web服务器的功能。 package包是能被应用程序和applets共享的类的集合。5. 掌握开发Java 程序的工作流程 1、编辑源程序:*.Java;工具:文本编辑器,推荐:UltraEdit或EditPlus等; 2、编辑Java源程序:javac Exmp.java 3、运行Java程序:java Exmp 4、或采用集成开发环境(IDE),如Eclipse、Jbuilder、BlueJ、JCreator等6Java源程序结构特点、文件名命名要求Java大小

8、写敏感如果源文件中有多个类,那么只能有一个类是public类如果有一个类是public类,那么源文件的名字必须与这个类的名字完全相同;若没有public类,那么文件名只需要和某个类的名字相同即可7理解Java程序的工作原理(图1.31) Java虚拟机 开始 结束 没有 个人计算机 Solaris工作台 MacOS工作台 Java源程序: *.java文件 Java虚拟机代码: *.class文件 编译 解释执行 加载 合法性和安全性检测 执行完毕? 已执行结束 第2章 结构化程序设计(一)标识符、关键字和数据类型1. Java词法(见PPT):UNICODE字符集、空格与分号、注释、标识符、

9、关键字等;Java是一种自由格式的语言,可以用任意个空格、制表符、换行符隔开每个词。分号作为语句的结束符,每个语句必须以分号作为结束符。标示符:标识符可以用来标识变量名、类名、类中的方法名和文件名等. 2. Java标识符:命名规则、书写约定 语法规则: 标识符组成: (1) 字母, (2)数字, (3)下划线“_” 和 (4)美元符号“$”; 首字符必须是(1) 字母, (2)下划线“_” 和 (3)美元符号“$”; 所有标识符是区分大小写的; 除去关键字、false、true和null; 标识符书写约定: 类名, 接口名 :首字母应该大写。class ThisIsAClassNameint

10、erface Account 字段、方法以及对象: 首字母应小写。thisIsMethodOrFieldName() 对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: 常量:全部用大写字母表示。如:GREEN HEAD_ COUNT Java包(Package)属于一种特殊情况:它们全都是小写字母,即便中间的单词亦是如此。如: package java.awt.event使用有如下规定 1/ 标识符可以由字母、数字、下划线(_)或美元符号($)组成。 2/ 标识符必须以字母、下划线或美元美元开头。 3/ Java语言是区别大小写语言,Myfirst与myfii

11、rst分别代表不同的标识符。 4/ 标识符不能与关键字(保留字)同名。 5/ 使用标识符应该在一定的程度上反应出它所表示的变量、常量、类或对象和含义。 6/ 没有长度限制3. 基本数据类型的定义与使用(PPT或课本);4、基本数据类型转换(PPT)(1)自动类型转换(注意其兼容性规则)低-高 byte,short,char- int - long - float - double 对于加宽转换,数字类型,包括整数(integer)和浮点(floating-point)类型都是彼此兼容的; 但是,数字类型和字符类型(char)或布尔类型(boolean)是不兼容的。 字符类型(char)和布尔类

12、型(boolean)也是互相不兼容的。(2)强制类型转换 所谓的强制类型转换是一种显式的类型变换方式,其通用格式如下: (target-type) value 其中,目标类型(target-type)指定了要将指定值所转换成的类型。理解表达式中的类型的自动提升 除了赋值方式,类型变换还可以在表达式中进行。在表达式中,对中间值的精确要求有时超过任何一个操作数的范围; 如果在JAVA应用程序表达式中出现数据类型不一致的情形,那么JAVA运行时系统首先自动将低优先级类型的数据转换成高优先级类型的数据,然后才进行表达式值的计算。 例如,考察下面的表达式。 byte a = 40;byte b = 50

13、;byte c = 100; int d = a * b / c; 中间项结果a*b很容易超过它的任何一个byte型操作数的范围。为处理这种问题,当分析表达式时,Java自动提升各个byte型或short型的操作数到int型。 这意味着子表达式a*b使用整数而不是字节型来执行。这样,尽管变量a和b都被指定为byte型,50*40中间表达式的结果2000是合法的。 (二)运算符、表达式和语句1Java常用运算符(P29)、理解优先级与结合性(PPT),表达式算术运算符(+,-,*,/,%,+,-):理解+,-的含义 +a是在变量参与参与运算之前自增1,然后用新值参与运算;而a+则是先用原来的值参

14、与运算,然后再将自己加1。-a与a与上述相类似。 +i(在使用i前,先使i的值加1 ) , -i i+ (在使用i后,再使i的值加1 ), i-关系运算符(,=,=,= =,!=) 、=只能用来比较两个数值类型数据(numbers含characters)的大小 不能用于Strings、booleans、arrays或其他类型布尔逻辑运算符(!,&,|, |, &):理解短路运算 短路规则 ( &和| ) 如果从第一个操作数可以推断出表达式结果,就不再计算第二个操作数 例如:if (x = 2) & (y != 2) System.out.println(两个条件都为 true.); 位运算符(

15、,&,|,):理解位运算符的实际运算过程按位异或运算() 参与运算的两个值,如果两个相应位的某一个是1,另一个是0,那么按位异或()在该位的结果为1。也就是说如果两个相应位相同,输出位为0,否则为1。 即:00=0,01=1,10=1,11=0左移位运算符() :用来将一个数的各二进位全部左移若干位。高位左移后溢出,舍弃不起作用,右补0。 例如:a = 00001111,则a2 = 00111100。在不产生溢出的情况下,左移一位相当于乘2128 1 returns 128 * 2 1 = 25616 与) 运算符执行一个右移位(带符号),左边按符号位补0或1a = 00110111,则a2=

16、00001101b = 11010011,则 b2 = 11110100右移一位相当于除2取商 例如:128 1 returns 128/ 2 1 = 64256 4 returns 256/ 2 4 = 16-256 4 returns -256/ 2 4 = -16 :同样是执行一个右移位,只是它执行的是不带符号的移位。也就是 说对以补码表示的二进制数操作时,在带符号的右移中,右移后左边留下的空位中添入的是原数的符号位(正数为0,负数为1);在不带符号的右移中,右移后左边留下的空位中添入的一律是0。 如 a = 00110111, 则 a2 = 00001101 b = 11010011,

17、 则 b2=00110100赋值运算符(=,及其扩展赋值运算符如+=) 赋值类运算符包括:=、+=、-=、*=、/=、&=、|=、%=、=和= op1=op1 二元运算符 op2; 等价于 op1二元运算符= op2; 例如:a=a+b;等价于a+=b;条件运算符( ?:)三目条件运算符(?:) 在Java语言中,三目条件运算符(?:)与C语言中的使用规则是完全一致的,使用的形式是: x ? y:z; 上面的三目条件运算的规则是:先计算表达式x的值,若x为真,则整个三目运算的结果是表达式y的值;若x为假,则整个三目运算的结果是表达式z的值。 下面的例子实现了从两个数中找出较大的数的功能。 in

18、t a=3,b=4; int max=ab?a:b; max的值为4。其它 (包括分量运算符 ,下标运算符 ,实例运算符 instanceof,内存分配运算符new,强制类型转换运算符 (类型),方法调用运算符 () 等)2. 语句格式与执行逻辑(如Switch、if、while等)(1)分支语句:if-else, switch-case (2)循环语句:for, while, do-while (3)例外处理语句:try-catch-finally, throw(4)其他: break, continue, label: , return能够用(1)(2)写出程序块、理解break;cont

19、inue,return的含义(见PPT的例子)。public class GradeLevel public static void main( String args ) System.out.println(n* first situation *); char grade=C; /normal use switch( grade ) case A : System.out.println(grade+ is 85100);break; case B : System.out.println(grade+ is 7084);break; case C : System.out.printl

20、n(grade+ is 6069);break; case D : System.out.println(grade+ is 60);break; default : System.out.println(input error); (三)熟练掌握本章练习与作业的内容第3章 面向对象程序设计(类、对象和接口)重点全面理解1 理解面向对象的类的三个基本特性:封装性、继承性和多态性(课本);对象:一个对象就是变量和相关方法的封装,其中变量表明对象的状态,方法表明对象的行为。软件对象既可以模拟现实世界的对象,也可以表示抽象的概念类:类是一类对象的抽象或原型,它定义了该类对象的共同的状态和方法 类和对

21、象的区别:类:是一类对象的原型,是对该类对象的抽象。 对象:是某个类的一个实例,是客观存在并能够使用的。封装性:能把对别的对象来说并不重要的对象的实现细节隐蔽起来 ,在使用一个对象时,只需知道怎样引用它的方法而无须知道它的具体实现。封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 封装的优点:模块化一个对象的源代码的编写和维护独立于其它对象的源代码。而且,对象在系统中很容易使用。 信息隐蔽每个对象都有一个公共接口使得其它对象可以与其通讯。但对象能维护自己的私有信息和方法并能在任何时候改变它们而不会影响

22、使用它的其它对象。继承性:利用现有的类(superclass)定义新的类(subclass), 子类可以继承父类的属性和方法并可以增加新的属性和方法或重载父类的方法。继承的优点:子类提供了基于父类公共部分的更具体的行为。利用继承子类可以重用父类多次; 可以定义一个称为抽象类的父类来定义一般行为。多态性:在同一个类中至少有两个方法用同一个名字,但有不同的参数。2. 掌握类、域和方法的定义(课本和PPT)类的定义格式如下:类修饰词 class 类名 extends 父类名 implements 接口名称列表类体:构造方法( constructor )成员变量( member variable )的

23、声明成员变量也称为域成员方法(Method)的实现 2.1 构造方法的概念与定义方法;构造函数重载(如果有this()语句则必须是其中的第一句)变量和方法称为类的成员(成员变量和成员方法),而构造方法不是类的成员每个类中至少有一个构造方法定义类时如未定义构造方法,运行时系统会为该类自动定义缺省的构造方法构造方法通常用来初始化实例对象,例如: 初始化成员域或设置工作环境定义:类中用来初始化新建的对象的方法,称为构造方法。 特点:无返回类型,方法名与类名相同说明:构造方法可被重载(overloaded),但必须具有不同的参数列表。 例如:public class Thing private int

24、 x;public Thing() x = 47;public Thing( int new_ x) x = new_ x;2.2成员变量的声明例子:public class SliderDemo public static final int FPS_INIT = 15; private int frameNumber = 0; protected int delay;boolean frozen = false Timer timer;private String name = Fred Flintstone;(1)注意其修饰符的含义:访问控制、static、final(2)注意的问题(P

25、PT的2.成员变量的声明) 成员变量在类体中声明,但在构造方法和方法之外 。(3)理解变量的作用域和生存期(见课本和PPT的例子)(1)方法定义的作用域以它的左大括号开始。但是,如果该方法有参数,那么它们也被包括在该方法的作用域中。(2)作为一个通用规则,在一个作用域中定义的变量对于该作用域外的程序是不可见(即访问)的。因此,当你在一个作用域中定义一个变量时,你就将该变量局部化并且保护它不被非授权访问和/或修改。实际上,作用域规则为封装提供了基础。(3)作用域可以进行嵌套。例如,每当你创建一个程序块,就创建了一个新的嵌套的作用域。这样,外面的作用域包含内部的作用域。这意味着外部作用域定义的对象

26、对于内部作用域中的程序是可见的。但反过来就不是,内部作用域定义的对象对于外部是不可见的。另一个需要注意的地方是:变量在其作用域内被创建,离开其作用域时被撤消。这意味着一个变量一旦离开它的作用域,将不再保存它的值了。另外还有一点,尽管程序块能被嵌套,但不能将内部作用域声明的变量与其外部作用域声明的变量重名。在这一点上,Java不同于C和C+。2.3成员方法的声明 方法修饰词 返回类型 方法名(方法的参数列表) 方法体 (1)注意其修饰符的含义:访问控制、static、abstract、final(2)理解参数传递的两种类型:简单数据类型(值传送);引用数据类型(数组类型、类或接口),见PPT的例

27、子 参数的类型可以是:简单数据类型:值传送。方法接收参数的值,但并不能改变这些参数的值 引用数据类型(数组类型、类或接口):地址传递。传递给方法的是数据在内存中的地址, 参数的命名: 参数名字可以与类的成员变量相同,但参数名会隐藏成员。变量为了区别参数与类的成员变量,我们必须使用thisclass Circle int x, y, radius; public Circle(int x, int y, int radius) this.x = x; this.y = y; this.radius = radius; 3对象的声明、创建(实例化)与使用(new操作符,Java垃圾收集机制:PPT

28、和课本例子p6465中System.gc()和finialize()方法) 创建一个对象包括三部分:声明部分type name ,实例化部分 new 类的构造方法,初始化部分。Rectangle rect = new Rectangle();垃圾回收器(garbage collection)垃圾回收器定期扫描内存,对于被应用的对象加上标记,按可能的路径扫描结束后清除未加标记的对象。当系统的内存用尽或程序中调用System.gc()要求进行垃圾收集时,垃圾收集线程与系统同步运行。否则垃圾收集器在系统空闲时异步地执行。被回收的对象是:不再被任何引用变量引用的对象引用变量自动放弃人为地将引用变量置为

29、nullfinialize()方法在一个对象被垃圾回收器回收之前,java解释器会自动调用对象的finalize()方法。通常在该方法内包括了释放系统资源的代码段。finalize( )方法在类java.lang.Object中实现如:protected void finalize ( ) throws throwable / clean up code for this classsuper. finalize( ); /清除对象使用的所有资源,包括由于继/承关系而获得的资源 4static关键字(类成员与实例成员)(1)理解类变量与实例变量的区别与使用方法实例变量对对象而言是独立的;类变量

30、对对象而言是公用的。 二者区别: 运行时系统在首次遇到类变量时就为类变量存储空间;而当创建类的实例对象时才为实例变量分配存储空间。 不管有多少类的实例,类变量只有一份拷贝,即所有实例共享相同的类变量;而每个实例对象都有自己的实例变量。 (P86-87) 实例变量只能通过对象来访问,而类变量既可以通过类名来访问,也可以通过实例对象来访问。 (P86-87)(2)理解类方法与实例方法的区别与使用方法实例方法只能由对象调用,并且可以操作类变量与实例变量;而类方法既可以由类调用又可以由对象调用,并且类方法只能对类变量进行操作。5this关键字的含义与使用方法this 是一个类的当前实例(对象)的引用。

31、只能在实例方法定义内使用它。在类方法或用static 说明的方法中不能用this 。6理解包(package)(详见PPT)(1)包的作用:包是一组相关的类或接口的集合, 它提供了访问保护和名字空间管理。Java编译器使用文件系统目录来保存包。(2)包的创建与命名规则格式:package pkg1.pkg2.pkg3; package语句必须放在原文件的开始处。 包定义语句在每个源程序中只能有一条,即一个类只能属于一个包。 包定义语句必须在程序的第一行(之前可有空格及注释)。 package的作用域是整个源文件 如果在同一个源文件中定义了多个类,最多仅可以有一个类用public修饰,且源文件名

32、必须与该类名相同 当未使用package语句时, 类和接口放在无名缺省包里 包名用“.” 分隔。 命名规则: Internet域名的逆序 + 其它名 一般全部采用小写ASCII字母例如, package com.google.soap.search; package edu.cmu.cs.bovik.cheese; package pany.region.package;(3)包的使用:import有三种方法访问包中的类:1) 使用长名字引用包中的公共成员 即在类名前注明包名2)引进包的公共成员 在文件的开始处使用import语句将指定的成员引进到当前文件中. 格式:import pkg1.p

33、kg2.类名 import 语句必须在源程序之前,在package 声明之后。 package . /缺省是package . import . /缺省是import java.lang.* 类声明 3)引进整个包 使用import语句引进包中的所有类和接口 格式:import pkg1.pkg2.* 例import graphics.*;(4)包中的源文件与类文件的管理(注意目录层次与包定义的对应关系,阅读PPT的例子) JDK利用文件系统的层次结构来管理源文件和类文件。 源文件和类文件所在的目录名应与其中的类所在的包名对应,编译器和解释器按此机制来查找类。如: 包分隔符相当于目录分隔符,包

34、存储的路径由包根路径加上包名指明的路径组成。当源文件中有多个类定义时,编译后将产生多个类文件。虽然类文件所在的目录序列必须与包名对应,但不一定与源文件在相同的目录中。包对应于文件系统的目录管理方式可以帮助编译器和解释器找到程序中的类和接口存放的地方。CLASSPATH指出用户的类库所在目录,在类路径(CLASSPATH)中只需指出包路径之上的顶层路径CLASSPATH= . ; d:classes7重点理解访问控制级别(1)成员变量和方法有4种访问级别:public, protected, default(package), private ;u (2)类有两种访问级别:public 或def

35、ault。u(3)修饰符的作用范围:Modifier Same class Same Package Subclass Universepublic Yes YesYes Yesprotected Yes Yes Yesdefault Yes Yesprivate Yes(4)通过例子去理解(课本或PPT)8Java的继承机制:单继承机制,不支持多重继承(1)子类继承父类的形式:extends(2)子类的继承性子类能够继承什么?如果子类与父类在同一个包内:子类能够继承其父类中所有非private(即public、protected和default)的成员变量和成员方法如果子类与父类不在同一个包

36、内:子类能够继承其父类中所有public和protected的成员变量和成员方法,但不能够继承其父类中的default和private成员变量和成员方法子类不能继承父类隐藏的成员变量和重写的父类方法子类不能继承父类中构造方法。因为构造方法不是类的成员(3)成员变量的隐藏与方法的重写变量的隐藏:子类中声明了和父类同名的变量,父类的成员变量被隐藏。方法的重写:子类中定义了与父类相同的方法, 则父类的方法被重写。1/ 成员变量的隐藏与方法重写的规则(详见PPT) 重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型 子类通过成员变量的隐藏和方法的重写可以把父类的状态和行为改变

37、为自身的状态和行为 子类中不能重写父类中的final method 子类中必须重写父类中的abstract method, 否则子类也为抽象类。 重写父类的方法时,不可以降低方法的访问权限父类中同名变量不能被继承即子类同名变量隐藏父类中的同名变量。子类中定义的同父类完全相同的方法将隐藏父类中的方法运行时多态性。子类调用父类方法的方法(包括同名方法)super 用来调用父类的构造函数super( paramlist )必须放在子类构造方法的句首。(4)方法的重载(overloading,也称为静态多态性,静态多态性在编译时可以被系统识别)在同一个类中名字相同但参数个数或类型不同的方法。返回值可以

38、不同。构造方法也可以重载。(5)运行时多态(重点理解)1/ 对子类的一个实例,如果子类重写了父类的方法,则运行时系统调用子类的方法,如果子类继承了父类的方法(未重写),则运行时系统调用父类的方法。2/ 对象的上转型对象对象的上转型对象的实体是子类负责创建的,但上转型对象会失去原对象的一些属性和功能。理解上转型对象的特点。 (PPT) 上转型对象不能操作子类新增的成员变量和成员方法(失掉了部分属性或功能) 上转型对象可以操作子类继承或重写的成员变量和成员方法 如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时一定是调用了这个重写的方法,因为程序在运行时知道,这个上转型对象的实体是子

39、类创建的3/ 理解运行时多态的作用(课本或PPT的例子)(6)final数据、方法和类1/ final数据可以是编译时的常量,也可以是运行时才初始化的常量2/ final 方法不能被重写3/ final类不能被继承(7)abstract类、abstract方法1/ 抽象类不能实例化创建对象。2/ 抽象方法只允许声明,不允许实现。3/ 抽象类中不一定要包含abstract方法,但是,一旦某个类中包含了abstract方法,则这个类必须声明为abstract类。9理解接口(1)接口的概念:接口就是方法定义(没有方法的实现)和常量值的集合。(2)接口的作用、接口与多重继承的区别1/ 一个类仅仅继承接

40、口中的常量。2/ 一个类不能继承接口中的方法。3/ 接口继承独立于类的继承。执行相同接口的类,不一定在类继承上相关。(3)接口的声明与定义(特征与使用规则,见PPT):1/ 在接口中定义的常量具有public, final ,static的属性。2/ 实现中不能缩小接口方法的访问类型:接口中的方法被默认是public的,所以类在实现接口方法时,一定要用pulbic来修饰.(4)接口的使用 1/ 使用接口的类体中可以使用接口中定义的常量2/ 必须实现接口中定义的所有方法。如果一个类声明一个接口,但没有实现接口中的所有方法,那么这个类必须是abstract类3/ 在类中实现接口所定义的方法时,方法

41、的声明必须与接口中所定义的完全一致。个类可以实现多个接口,在implements子句中用逗号分隔。public class Airplane implements Flyer public void takeOff() . public void land() . public void fly() . 4/ 接口的回调问题:Java运行时系统动态地确定该使用哪个类中的方法。(PPT中的例子)10. 重点掌握作业第4章 数组、字符串、向量与哈希表1 数组的声明与创建(尤其掌握一维数组的声明与使用) 一维数组变量的声明格式有如下两种:(1)数组元素的数据类型 变量名;(2)数组元素的数据类型 变

42、量名 ;实例:int c; String names; int c ; String names ; int c = new int12;int n = 10, 20, 30, 40, 50 ;直接为每一维分配空间, 如int a = new int23; int twoDim = new int 4; /error分别为每一维分配空间 如: int a = new int2 ;a0 = new int3;a1 = new int3;可以为每行设置为空间大小不同的数组。如:a0 = new int3; a1 = new int5;2 数组元素的构成特点(简单数据与构造类数据)MyDate da

43、tes;dates = new MyDate 3;dates 0 = new MyDate( 22, 7, 1964);dates 1 = new MyDate( 1, 1, 2000);dates 2 = new MyDate( 22, 12, 1964);对基本数据类型int nums;nums = new int 3;nums 0 = 1;nums 1 = 2;nums 2 = 3;3 数组的操作:数组初始化与数组元素的赋值初始化 有两种方式:先定义数组,分配空间,然后直接对每个元素进行赋值 在定义数组的同时进行初始化。如:int a = 2,3, 1,5, 3,4;4String对象的

44、定义方法与基本操作(长度、相等判断,课本与PPT)掌握:length(),equals(),subString(),parseXXX(),String对象的+和=操作,成员方法intern(P135)使用java.lang包中的String类来创建字符串变量。字符串变量是一个类类型变量,是一个对象,或引用变量。1、字符串常量:“ABC”2、声明字符串:String s;3、创建字符串变量:S=new String(“abc”);S=“abc”;String tomName=String(“tom”);通过数组创建字符串对象:String(char a)截取数组元素的一部分来创建字符串对象:St

45、ring(char a,int startIndex,int count);获取字符串的长度:调用String 类的方法length()与数组不同之处: Strings不含有 length成员域equals方法:public boolean equals(String s),比较字符串对象的内容注意字符串引用的比较,如String s1=“abc”,s2=“abc”,s3=“Abc”;s1.equals(s2) ? / trues1.equals(s3) ? / false字符串的截取(求子串)(1)public String substring(intbeginIndex) 返回新的字符串:

46、 当前字符串的子串该子串从指定的位置开始,并一直到当前字符串结束为止unhappy.substring(2) returns happy Harbison.substring(3) returns bison“emptiness.substring(9) returns (an empty string) (2)public String substring(intbeginIndex, intendIndex)返回新的字符串: 当前字符串的子串该子串从指定的位置(beginIndex )开始, 到指定的位置(endIndex - 1)结束hamburger.substring(4, 8) r

47、eturns urge smiles.substring(1, 5) returns mile 字符串与相应数值的相互转化(1)转化为整型public static int parseInt(Strings) int i=Integer.parseInt(“123”);(2)转化为float型或double型public static float parseFloat(Strings) public static double parseDouble(Strings) 方法intern返回具有相同内容的字符串的引用如果字符串池含有该内容的字符串,则返回字符串池中具有该内容的字符串的引用如果字符

48、串池没有字符串的内容与其相同,则在字符串池中创建具有该内容的字符串,再返回新创建的字符串的引用字符串池组成: 字符串直接量 以及 由方法intern产生的字符串字符串池中的字符串s与t : s与t具有相同内容(s.equals(t)当且仅当指向s与t的同一个字符串(s.intern() = t.intern()可以采用这个机制加速字符串是否相等的判定字符串常量、成员方法intern和运算符=当用于基本数据类型时,用于判别是否相等当用于引用数据类型时,用来判别引用是否指向相同的对象Java虚拟机中含有字符串池(常量在此池内),相同内容的字符串常量相同的对象 (课本例子P136)s1 = “hel

49、lo”; / 字符串常量s2 = new String( hello );s1 = hello; / trues2 = hello; / false(s2不在字符窜池中)5区别String与StringBuffer(1)String实例一旦创建,不能改变其内容;StringBuffer实例则可以修改实例所包含的字符序列buf1 = new StringBuffer();创建空的StringBuffer对象容量为16字符buf2 = new StringBuffer( capacity );创建空的StringBuffer对象指定容量大小buf3 = new StringBuffer( mySt

50、ring );创建含有相应字符序列的StringBuffer对象容量为myString.length() + 16实例: StringBuffer b = new StringBuffer(hello);(2)掌握String与StringBuffer的互相转换String 和 StringBuffer 是两种不同的类不能用字符串(String)的实例对象调用类(StringBuffer)的成员方法反之亦然String 变成 StringBuffer 构造方法StringBuffer 变成 String构造方法 若 b为StringBuffer类型的变量String s=new String(

51、b);方法 toString():String s=b.toString();(3)通过例子理解StringBuffer的内容容量(P137)6、Vector实现了可扩展的对象数组,使用向量没有数组的范围限制,可以不断添加元素。但向量中不能存放基本数据类型的数据,加入的数据均为对象。掌握Vector的基本使用方法(PPT,向量变量声明、向量元素的遍历等)向量变量的声明格式Vector 变量名;如: Vector v;创建向量实例对象:Vector vs = new Vector( );Vector vo = new Vector( );方法1:通过位置访问for (int k=0;kv.siz

52、e();k+) 输出 v.get(k);方法2:通过使用迭代器进行遍历Iterator p=v.iterator(); while (p.hasNext() 输出 p.next();7. 掌握练习与作业的例子第5章 泛型、枚举与for语句的简化写法1、 掌握泛型的定义与使用(结合PPT和课本的例子进行理解)类类修饰词列表 class 类名 extends 父类名 implements 接口名称列表 类体接口接口修饰词列表 interface 接口名 extends 接口名称列表 接口体public class Add public String sum(T a1, T a2, T a3) re

53、turn(a1.toString( ) + a2.toString( ) + a3.toString( ); / 方法sum结束 public static void main(String args ) Add b = new Add( ); Integer a1 = new Integer(1); Integer a2 = new Integer(2); Integer a3 = new Integer(3); System.out.println( b.sum(a1, a2, a3) ); / 方法main结束 / 类Add结束2、 掌握枚举的定义与使用(结合PPT和课本的例子进行理解)

54、枚举的基本定义格式:枚举类型修饰词列表 enum 枚举类型标识符 枚举常量1, 枚举常量2, . ., 枚举常量n枚举类型修饰词可以是public或缺省,但不能是protected、private、abstractenum Season 春季, 夏季, 秋季, 冬季 / 枚举Season结束注:定义枚举变量,如:Season s;定义枚举数组变量,如:Season s ;Season.春季, Season.夏季, Season.秋季, Season.冬季为枚举常量不能通过new运算符创建实例对象,可直接通过枚举类型标识符访问枚举变量,如: Season s1= Season.春季;可通过枚举变

55、量访问枚举常量,如 s.夏季=Season.夏季通过枚举常量,可调用成员方法 (1) public String name(); (2) public String toString(); 如:s1.name()或Season.春季.toString()都返回“春季”通过成员方法values获得该枚举类型的所有枚举变量,如:Season s2=Season.values();3、 了解for语句的简化写法类型 ca = 表达式;for (int i=0; ica.length; i+) 类型 标识符 = cai; 语句或语句块enum Season 春季, 夏季, 秋季, 冬季 public

56、class EnumFor public static void main(String args ) for ( Season c : Season.values( ) System.out.print(c + , ); System.out.println( ); Season ca = Season.values( ); for ( int i=0; i ca.length; i+ ) Season c = cai; System.out.print(c + , ); for ( 类型 标识符 : 表达式 ) 语句或语句块如: Vector a = new Vector( ); a.add( a ); a.add( b ); a.add( c ); for ( String c :

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