Java程序设计教程与实训(第2版).ppt

上传人:asd****56 文档编号:87082257 上传时间:2023-04-16 格式:PPT 页数:192 大小:2.53MB
返回 下载 相关 举报
Java程序设计教程与实训(第2版).ppt_第1页
第1页 / 共192页
Java程序设计教程与实训(第2版).ppt_第2页
第2页 / 共192页
点击查看更多>>
资源描述

《Java程序设计教程与实训(第2版).ppt》由会员分享,可在线阅读,更多相关《Java程序设计教程与实训(第2版).ppt(192页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、JAVAJAVA语言程序设计教程语言程序设计教程与实与实训训(第(第2 2版)版)北京大学出版社北京大学出版社许文宪李兴福JavaJava语言概述语言概述第一章学学 习习 要要 点点JavaJava的发展的发展历史历史JavaJava版本:版本:JAVAJAVA EE EE、JAVA SEJAVA SE、JAVA MEJAVA ME1.1 Java1.1 Java的发展历史和语言特点的发展历史和语言特点1991年Green小组oak1995年5月23日JavaHotJava浏览器2009年4月甲骨文收购Java1 1面向对象面向对象2 2语法语法简单简单3 3平台无关平台无关性性4 4安全性安

2、全性5 5分布式分布式应用应用6 6多线程多线程JavaJava的语言特点的语言特点Java程序的运行必须经过编写、编译、运行三个步骤。编写是指在Java开发环境中进行程序代码的输入,最终形成后缀名为.java的Java源文件。编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件,这不像C语言那样最终生成可执行文件。运行是指使用Java解释器将字节码文件翻译成机器代码,执行并显示结果。JavaJava运行机制运行机制Java虚拟机(JVM)是运行Java程序的软件环境,由它来负责解释执行Java的字节码,并且Java字节码只能运行于JVM之上。这样

3、利用JVM就可以把Java字节码程序和具体的硬件平台以及操作系统环境分隔开来,从而实现了真正的二进制代码级的跨平台移植。JVM是Java平台无关的基础,Java的跨平台特性正是通过在JVM中运行Java程序实现的。JavaJava虚拟机虚拟机Java开发工具Java SDK:Java Developement Kits,简称JDK安装和设置环境变量:path=C:Program FilesJavajdk1.6.0_24binclasspath=.;C:Program FilesJavajdk1.6.0_24 libJavaJava的编辑、编译和运行的编辑、编译和运行编译:javac filen

4、ame.java 运行:java filename1.2 Java1.2 Java的运行环境的运行环境Hello World程序的开发流程1、编写2、编译3、运行1.3 1.3 最简单的最简单的JavaJava程序程序Java应用程序的开发必须经过编写、编译、运行三个步骤。使用记事本等文本编辑工具进行程序代码的编写,使用Java开发工具集JDK提供的编译器进行编译,最后使用Java解释器解释运行。Java虚拟机JVM使Java应用程序实现了跨平台运行。小小 结结JavaJava语言基础语言基础第二章学学 习习 要要 点点标识符标识符(Identifiers)关键字(Keyword)运算符(Op

5、erands)分隔符(Separator)常量(Literals)2.1 Java2.1 Java的基本的基本数据类型数据类型常量数值常量布尔常量字符常量基本基本数据类型数据类型变量定义类型 变量名=初始值;double di=0.34;String myName=Tom;int length,width;变量命名(1)它必须是一个合法的标识符。一个标识符是以字母或下划线或$符号开头的一串Unicode字符。中间不能包含空格。(2)它必须不是一个关键字、布尔型字符(true或者false)或者保留字null。(3)Java对变量名区分大小写。如:myName和MYNAME是两个不同的变量。变量

6、变量【例例2 21 1】本例结合基本数据类型,说明如何使用变量。变量作用域变量作用域类型转换的方法有两种:隐式类型转换和显式类型转换。隐式数据类型转换:一个容纳信息量小的类型转化为一个信息量大的类型时,编译器会自动地完成类型转换工作。显式数据类型转换:把一个容量较大的数据类型向一个容量较小的数据类型转换时,可能面临信息丢失的危险,此时必须使用显式类型转换。(类型)表达式void casts()int i=200;long j=8L;long l=i;/隐式数据转换i=(int)j;/显式数据转换数据类型转换数据类型转换算术运算符【例例2 22 2】算术运算符的使用示例。【例例2 23 3】递增

7、运算符和递减运算符的使用示例。2.2 2.2 运算符运算符关系运算符【例例2 24 4】关系运算符的使用示例。逻辑运算符【例例2 25 5】本例展示了如何使用关系和逻辑运算符。【例【例2 26 6】逻辑运算符的短路测试。位运算符移位运算符【例例2 27 7】移位运算符示例。赋值运算符赋值运算符三元运算符三元运算符布尔表达式?值0:值1;运算符的优先级运算符的优先级if结构形式一:if(条件表达式)语句形式二:if(条件表达式)语句1else 语句2形式三:if(条件表达式1)语句1else if(条件表达式2)语句2else 语句3【例例2 28 8】利用if语句,判断某一年是否是闰年。2.3

8、 Java2.3 Java的的控制结构控制结构switch(表达式)case 常量1 :语句块1;break;case 常量2 :语句块2;break;case 常量n :语句块n;break;default:语句块n+1;switch语句中起判断作用的表达式必须为byte、short、int或者char类型。【例例2 29 9】switch语句示例。注意其中break语句的作用。switchswitch语句语句for(表达式1;表达式2;表达式3)循环体第一个表达式初始化循环变量,第二个表达式定义循环体的循环条件,第三个表达式定义循环变量在每次执行循环时如何改变。for语句执行时,首先执行初

9、始化操作,然后判断循环条件是否满足,如果满足,则执行循环体中的语句,最后执行第三个表达式,改变循环变量。完成一次循环后,重新判断循环条件。【例例2 21010】使用for语句,完成简单的数据求和。forfor循环循环while语句的基本形式为:while(条件表达式)循环体【例例2 21111】使用while语句,完成简单的数据求和。do循环体;while(条件表达式)【例例2 21212】使用do-while语句,完成简单的数据求和。whilewhile循环和循环和do-whiledo-while循环循环breakbreak语句语句在循环语句中,使用break语句可以直接跳出循环,忽略循环体

10、的任何其他语句和循环条件测试。换句话说,循环中遇到break语句时,循环终止,程序转到循环后面的语句处继续执行。带标签的break语句,不但具有普通break语句的跳转功能,而且可以明确地将程序控制转移到标签指定的地方。带标签的break语句形式为:break 标签;continuecontinue语句语句continue语句只可能出现在循环语句(while、do-while和for循环)的循环体中,作用是跳过当前循环中continue语句以后的剩余语句,直接执行下一次循环。【例例2 21313】break语句和continue语句的使用示例。2.3.52.3.5跳转跳转语句语句理解变量和常量

11、的概念,掌握Java常用数据类型以及类型间如何进行相互转换。在算术运算符中,递增(+)和递减(-)两个运算符在变量前后的位置不同,运算顺序也不同。运算符的优先级。Java的控制结构部分。break和continue跳转语句。小小 结结类和对象类和对象第三章学学 习习 要要 点点类和对象的关系类和对象的关系一切客观实体都具有如下特性:有一个名字标识该实体,有一组属性描述其特征,有一组行为实现其功能。类是对具有相同属性和方法的一组相似对象的抽象,或者说类是对象的模板。3.1 3.1 类的类的定义定义类的声明格式如下:修饰符 class extends 父类名 implements 接口名类主体声明

12、成员变量的格式为:修饰符 声明成员方法的格式为:(参数列表)throws 方法体【例例3 31 1】定义一个求圆面积的类。类的定义格式类的定义格式方法的返回值方法的返回值方法的返回值类型可以是基本数据类型也可以是对象,如果没有返回值,就用void来描述。如果一个方法有返回值,则可以在方法体中使用return 语句将值返回。【例32】方法的返回值。方法的参数方法的参数方法可分为有参方法和无参方法,需要注意的是,在Java语言中,向方法传递参数的方式是“按值传递”。【例33】方法的参数。【例34】方法的参数传递。3.2 3.2 方法方法创建对象其格式为:=new ()Circle mycircle

13、=new Circle();3.3 3.3 类的类的实例化实例化通常使用的格式为:对象名.成员变量名对象名.成员方法名()对象赋值anothercircle=mycircle;【例例3 35 5】创建日期类Date并进行输出。【例【例3 36 6】设计类Number,测试对象间的赋值。使用对象成员使用对象成员类成员的访问控制类成员的访问控制public修饰的类或成员拥有公共作用域,表明此类或类的成员可以被任何Java中的类所访问,是最广泛的作用范围。protected修饰的变量或方法拥有受保护作用域,可以被同一个包中所有的类及其他包中该类的子类所访问。private修饰的变量或方法拥有私有作用

14、域,只能在此类中访问,在其他类中,包括该类的子类中也是不允许访问的,private是最保守的作用范围。没有使用任何修饰符的,拥有默认访问权限(也称友好访问权限),表明此类或类的成员可以被同一个包中的其它类访问。【例例3 37 7】测试成员变量修饰符的作用。访问控制修饰符访问控制修饰符使用static修饰的变量和方法分别称为类变量(或称静态变量)和类方法(或称静态方法),没有使用static修饰的变量和方法分别称为实例变量和实例方法。类成员(静态成员)属于这个类而不是属于这个类的某个对象,它由这个类所创建的所有对象共同拥有。对于类成员,既可以使用对象进行访问,也可以使用类名直接进行访问,并且在类

15、方法中只能访问类成员,而不能访问实例成员。实例成员由每一个对象个体独有。对于实例成员,只能通过对象来访问,不能通过类名进行访问。在实例方法中,既可以访问实例成员,也可以访问类成员。【例【例3 38 8】定义类SaticTest,测试对实例成员和类成员的不同访问形式。【例【例3 39 9】测试类变量与实例变量的不同。类型类型修饰符修饰符构造方法的作用和定义构造方法也称为构造函数,用来对对象进行初始化。构造方法的特点:构造方法的名字必须和类名完全相同没有返回值,甚至连表示无返回值的空类型(void)也没有。构造方法一般应定义为public。使用new运算符调用构造方法【例310】对例3.5中Dat

16、e类进行修改,将定义日期的功能用构造方法来实现。3.4 3.4 构造构造方法方法默认构造方法默认构造方法每个类都至少有一个构造方法。如果程序员没有为类定义构造方法,Java虚拟机会自动为该类生成一个默认的构造方法。如果程序员定义了一个或多个构造方法,则自动屏蔽掉默认的构造方法。构造方法的构造方法的使用使用【例【例3 31111】设计类Person,用其创建对象,并对创建的对象个数计数。Java中方法的所有参数均是“按值”传送的,即,方法调用不会改变参数被传递前的值。对象作为方法的参数当使用对象实例作为参数传递给方法时,参数的值是对对象的引用。也就是说,传递到方法内部的是对象的引用值而不是对象的

17、内容。因为“按值”传送,在方法内这个引用值不会被改变。但,如果通过该引用值修改了所指向的对象的内容,则方法结束后,所修改的对象内容可以保留下来。【例【例3 31212】对象作参数示例之一。【例【例3 31313】对象作参数示例之二。3.5 3.5 参数传递和参数传递和thisthis引用引用this关键字可以为调用了方法的那个对象生成相应的地址,从而获得了对调用本方法的那个对象的引用。当方法需要访问类的成员变量时,就可以使用this引用指明要操作的对象。【例【例3 31414】对例3.5中Date类进行修改,用this实现对本类的引用。当一个变量被声明为static时,是不能用this来指向的

18、【例【例3 31515】对例3.5中Date类进行修改,将对象作为自变量传送。this还可以用在某个构造方法的第一句,用来调用该类的另一个构造方法thisthis引用引用强内聚、弱耦合把类的成员声明为私有的(private),只把一些少量的、必要的方法声明为公共的(public),提供给外部使用。封装:将类的外部界面与类的功能实现区分开来,隐藏实现细节,(通过公共方法)保留有限的对外接口,迫使用户使用外部界面,通过访问接口实现对数据的操作。优势:增强了程序的健壮性。使代码维护更简单。类的封装性类的封装性包:包是Java提供的文件组织方式。一个包对应一个文件夹,一个包中可以包括很多类文件,包中还

19、可以有子包,形成包等级。非权限定名(短名字):类文件本身的名字。全限定名(长名字):在类文件的名字前面加上包的名字。优势:方便了类文件的管理扩大了Java命名空间,避免命名冲突同一个包中的文件名必须唯一,不同包中的文件名可以相同。3.6 3.6 类的类的组织组织创建包:package ;package .;在一个Java文件中,只允许出现一句package语句【例【例3 31616】将HelloWorld程序放入自己定义的包myPackage中。编译生成包结构javac d .filename.java运行有包的java类java 类全限定名CLASSPATH环境变量指明类的存储路径set C

20、LASSPATH=.;C:myjava引入包:import pkg1.pkg2.(classname|*);【例【例3 31717】将Date类放入包mypackage,并用mypackage1包中的Test类实现该Date类。import语句仅能引入被声明为public的类,并且不能引入子包中的类。访问保护:类、包都是用来封装变量和方法、容纳名称空间的。包就像盛装类和下级包的容器,类就像是数据和代码的容器。访问控制修饰符确定访问限制。【例【例3 31818】下面的例子演示了包的保护作用。类的声明使用如下格式:修饰符 class extends 父类名 implements 接口名。类的主体包

21、括成员变量和成员方法,声明成员变量的格式:修饰符 声明成员方法的格式为:(参数列表)throws 类设计好以后,就可以用来定义对象,其格式为:=new ()类的主体中还包括一个与类名相同无返回值的特殊方法,这就是构造方法。构造方法用来对对象进行初始化。Java虚拟机会自动为类生成一个无参数的默认构造方法,但如果程序中定义了一个或多个构造方法,则会屏蔽掉默认的构造方法。小小 结结继承与多态继承与多态第四章学学 习习 要要 点点当一个类A能够获取另一个类B中所有非私有的数据和操作的定义作为自己的部分或全部成分时,就称这两个类之间具有继承关系。被继承的类B称为父类或超类,继承了父类或超类的数据和操作

22、的类A称为子类。4.1 4.1 继承和多态的继承和多态的概念概念单重继承,是指任何一个类都只有一个单一的父类。多重继承是指一个类可以有一个以上的父类,它的静态的数据属性和操作从所有这些父类中继承。单重继承的特点:程序结构比较简单掌握、控制起来相对容易多重继承的特点:其结构则是复杂的网状设计、实现都比较复杂多态,是指一个程序中同名的不同方法共存的情况。1、子类对父类成员的覆盖实现多态2、利用同一个类中方法的重载实现多态继承的实现:确定父类。定义子类。类修饰符 class 子类名 extends 父类名 实现子类的功能。【例例4 41 1】继承的示例。新定义的子类可以从父类那里自动继承所有非pri

23、vate的属性和方法作为自己的成员。【例例4 42 2】子类继承父类成员示例。4.2 4.2 类的类的继承继承 子类对象可以被视为是其父类的一个对象。父类对象不能被当作是其某一个子类的对象。如果一个方法的形式参数定义的是父类对象,那么调用这个方法时,可以使用子类对象作为实际参数。如果父类对象引用指向的实际是一个子类对象(在以前的某个时候根据这一点把子类对象的引用赋值给这个父类对象的引用),那么这个父类对象的引用可以用强制类型转换转化成子类对象的引用。【例例4 43 3】父子类对象转换示例。父类对象与子类对象的转换父类对象与子类对象的转换 子类无条件地继承父类的无参数的构造方法;如果子类自己没有

24、构造方法,则它将继承父类的无参数构造方法作为自己的构造方法;如果子类自己定义了构造方法,则在创建新对象时,它将先执行继承父类的无参数构造方法,然后再执行自己的构造方法。对于父类的含参数构造方法,子类可以通过在自己构造方法中使用“super”关键字来调用它,但这个调用语句必须是子类构造方法的第一个可执行语句。【例例4 44 4】构造方法继承问题构造方法的继承构造方法的继承覆盖:子类对继承自父类的类成员重新进行定义。域隐藏(变量的隐藏):子类重新定义一个与从父类那里继承来的成员变量完全相同的变量。【例例4 45 5】隐藏父类变量。【例例4 46 6】使用被隐藏的父类变量。方法的覆盖,使得父类中的同

25、名方法在子类对象中不可见;成员变量的隐藏,使得父类中的同名变量在子类对象中不可见。两者不同之处在于:被隐藏的父类中的变量在子类对象中仍然占有自己的独立存储空间,而被覆盖的父类中的方法在子类对象中被新方法完全取代,不占据子类的存储空间。子类在重新定义父类已有的方法时,应保持与父类方法完全相同的方法头声明,即应与父类方法有完全相同的方法名、返回值和参数列表。【例例4 47 7】方法的覆盖。4.3 4.3 类成员的覆盖类成员的覆盖super表示的是当前类的直接父类对象,是对当前对象的直接父类对象的引用。【例例4 48 8】使用super表示当前类的直接父类对象。调用当前父类中一般的方法,使用supe

26、r.方法名(参数);this和super还有一个重要的用法,就是调用当前对象或父类对象的构造方法。supersuper引用引用方法的重载:同一个类中的两个或两个以上的方法可以有相同的名字,只要它们的参数声明不同即可,这种情况称为方法重载(method overloading)。当一个重载方法被调用时,Java 根据参数的类型、参数的个数、参数的顺序来确定实际调用的是重载方法的哪一个版本,只有形式参数与调用参数相匹配的方法被执行。【例49】本例中重载了方法print,并根据参数类型的不同,决定调用哪一个。构造方法的重载【例410】构造方法的重载。【例411】构造方法中使用关键字this。4.4

27、4.4 方法重载方法重载抽象类:凡是用修饰符abstract修饰的类被称为抽象类。abstract class ClassName ./类的主体部分特点:如果一个类中含有未实现的抽象方法,那么这个类就必须使用abstract声明为抽象类。抽象类中可以包含抽象方法,但不是一定要包含抽象方法。它也可以包含非抽象方法和域变量,就像一般类一样。抽象类是没有具体对象的概念类,也就是说抽象类不能实例化为对象。抽象类的子类必须为父类中的所有抽象方法提供实现,否则它们也是抽象类。抽象方法是指使用abstract关键字修饰的、没有方法体的方法,其格式为:修饰符 abstract 返回值类型 方法名(参数列表);

28、【例例4 41212】抽象类示例。4.5 4.5 抽象类和最终类抽象类和最终类如果一个类被final修饰符所修饰,说明这个类不可能有子类,这样的类就称为最终类。最终类不能被别的类继承,它的方法也不能被覆盖。abstract和final修饰符不能同时修饰一个类最终类最终类Java中声明接口的语法如下:public interface 接口名 extends父接口名列表 /以下是接口体/常量域声明 public static final 域类型 域名常量值;/抽象方法声明 public abstract native 返回值 方法名(参数列表)throw 异常列表;在Java中接口是一种专门的类型

29、。用interface关键字定义接口。接口中只能定义抽象方法,不能有方法体,一定是public abstract修饰的。接口中可以定义变量,但实际上是public static final修饰的常量。接口中不能定义静态方法。【例例4 41313】接口示例。4.6 4.6 接口接口接口与抽象类的区别:接口不能包含任何可以执行的方法,而抽象类可以。类可以实现多个接口,但只有一个父类。接口不是类分级结构,没有联系的类可以执行相同的接口。接口实现 在类的声明部分,用implements关键字声明该类将要实现哪些接口。如果实现某接口的类不是abstract抽象类,则在类的定义部分必须实现指定接口的所有抽

30、象方法。如果实现某接口的类是abstract的抽象类,则它可以不实现该接口所有的方法。但是对于这个抽象类任何一个非抽象的子类而言,必须实现所有的抽象方法。个类在实现某接口的抽象方法时,必须使用完全相同的方法头。接口的抽象方法的访问限制符都已指定为public,所以类在实现方法时,必须显式地使用public修饰符。【例例4 41414】接口实现示例。Java中的继承通过extends关键字来实现,它的具体语法是:类修饰符 class 子类名 extends 父类名通过继承,子类拥有父类的所有非私有成员。子类对继承自父类的成员重新进行定义,就称为覆盖。构造方法也可以重载。用修饰符abstract修

31、饰的类称为抽象类。如果一个类使用final修饰符所修饰,说明这个类不可能有子类,这样的类就称为最终类。接口用interface来声明。小小 结结数组与常用类数组与常用类第五章学学 习习 要要 点点数组的定义与创建:方式一:数组元素类型 数组名;数组元素类型 数组名;方式二:数组元素类型 数组名=new 数组元素类型数组元素个数;方式三:数组元素类型 数组名=值1,值2,;访问数组元素:通过下标进行。数组名下标下标必须是整型或可以转变成整型的量,可以是常量、变量或表达式。数组下标由0开始,最大下标是数组元素个数-1。【例【例5 51 1】编写一个应用程序,求 Fibonacci数列的前10个数。

32、【例【例5 52 2】编写应用程序,声明一个整型数组并对它初始化,在屏幕上输出各元素的值和其总和。【例【例5 53 3】用冒泡法,对已有数据从小到大排序。【例【例5 54 4】使用对象数组示例。5.1 5.1 数组数组二维数组的定义格式为:数据类型 数组名 ;数据类型 数组名;二维数组元素访问格式如下:数组名行下标列下标【例【例5 55 5】编写程序,定义一个不规则的二维整型数组,输出其行数和每行的元素个数,并求数组所有元素的和。命令行命令行参数参数:指执行某个Java应用程序时,从命令行中向程序直接传送的参数。我们可以获得这些参数的值,并运用到程序的执行过程中。public static v

33、oid main(String args)【例【例5 56 6】从命令行中输入若干数字字符串,求输入数字串的个数,并求它们的和。使用二维数组使用二维数组Java API(Application Programming Interface,应用程序接口)就是Java类库,是系统提供的已实现的标准类的集合。5.2 Java API5.2 Java API与技术文档与技术文档包名主要功能java.applet提供了创建applet需要的所有类java.awt.*提供了创建用户界面以及绘制和管理图形、图像的类java.beans.*提供了开发Java Beans需要的所有类java.io提供了通过数据

34、流、对象序列以及文件系统实现的系统输入、输出java.lang.*Java编程语言的基本类库java.math.*提供了简明的整数算术以及十进制算术的基本函数java.rmi提供了与远程方法调用相关的所有类提供了用于实现网络通讯应用的所有类java.security.*提供了设计网络安全方案需要的一些类java.sql提供了访问和处理来自于Java标准数据源数据的类java.test包括以一种独立于自然语言的方式处理文本、日期、数字和消息的类和接口java.util.*包括集合类、时间处理模式、日期时间工具等各类常用工具包javax.accessibility定义了用户界面组件之间相互访问的一

35、种机制javax.naming.*为命名服务提供了一系列类和接口javax.swing.*提供了一系列轻量级的用户界面组件,是目前Java用户界面常用的包JavaJava提供的部分常用包提供的部分常用包包名类名继承关系实现接口类的完整定义类的说明版本说明数据类型类:也称包装类,它是封装了基本数据类型的类数据类型类的常用方法【例【例5 57 7】数据类型类的对象方法使用示例。【例【例5 58 8】数据类型类的静态方法使用示例。5.3 5.3 数据类型类数据类型类基本数据基本数据类型型数据数据类型型类基本数据基本数据类型型数据数据类型型类byteBytefloatFloatshortShortdo

36、ubleDoubleintIntegercharCharacterlongLongbooleanBoolean方法名方法名方法作用方法作用对象名.xxxxValue()获得对象中的基本类型数据对象名.toString()方法将基本数据类型类中的数值转换为字符串类名.valueOf(String s);把字符串s转化成相应的数据类型对象String类Java语言中的字符串属于String类创建字符串【例【例5 59 9】使用多种方法创建一个字符串并输出字符串内容。5.4 String5.4 String类和类和StringBufferStringBuffer类类构造方法说明String()初始化

37、一个新的String对象,使其包含一个空字符串String(char value)分配一个新的String对象,使它包含字符数组参数中的字符序列String(char value,int offset,int count)分配一个新的String对象,使它包含来自字符数组参数中子数组的字符String(String value)初始化一个新的String对象,使其包含和参数字符串相同的字符序列String(StringBuffer buffer)初始化一个新的String对象,它包含字符串缓冲区参数中的字符序列方法说明char charAt(int index)获取给定的index处的字符in

38、t compareTo(String anotherString)按照字典的方式比较两个字符串int compareToIgnoreCase(String str)按照字典的方式比较两个字符串,忽略大小写String concat(String str)将给定的字符串连接到这个字符串的末尾boolean equals(Object anObject)将这个String对象和另一个对象String进行比较int indexOf(String str)获取这个字符串中出现给定子字符串的第一个位置的索引int length()获取这个字符串的长度String replace(char oldChar

39、,char newChar)通过将这个字符串中的odChar字符转换为newChar字符来创建一个新字符串String substring(int strbegin,int strend)产生一个新字符串,它是这个字符串的子字符串,允许指定起始处、结尾处的索引String toLowerCase()将这个String对象中的所有字符变为小写String toString()返回这个对象(它已经是一个字符串)String toUpperCase()将这个String对象中的所有字符变为大写 String trim()去掉字符串开头和结尾的空格static String valueOf(int i

40、)将int参数转化为字符串返回。该方法有很多重载方法,用来将基本数据类型转化为字符串。如:static String valueOf(float f),static String valueOf(long l)等字符串的操作字符串的操作s1.equals(s2)s1.equalsIgnoreCase(s2)s1.regionMatches(boolean ignoreCase,int toffset,s2,int ooffset,int len pareTo(s2)【例例5 51010】比较字符串。字符串的比较字符串的比较求字符串长度 s1.length()【例【例5 51111】求指定字符串

41、的长度。拷贝字符串s1.copyValueOf(data)s1.copyValueOf(data,int offset,int count)s1.getChars(int strbegin,int strend,data,int offset)s1.toCharArray()s1.substring(int strbegin)s1.substring(int strbegin,int strend)【例【例5 51212】拷贝字符串。s1.chatAt(int index)s1.indexOf(int char)s1.lastIndexOf(int char)s1.indexOf(s2)s1.

42、lastIndexOf(s2)【例【例5 51313】查找字符和子串。在字符串中查找字符和子在字符串中查找字符和子串串s1.replace(oldchar,newchar)s1.toLowerCase()s1.toUpperCase()s1.trim()【例【例5 51414】修改字符串。修改字符串修改字符串创建StringBuffer对象【例【例5 51515】用多种方法创建StringBuffer对象。5.4.2 5.4.2 StringBufferStringBuffer类类构造方法说明StringBuffer()构造一个空的缓冲字符串,其中没有字符,初始长度为16个字符的空间Strin

43、gBuffer(int length)构造一个长度为length的空的缓冲字符串StringBuffer(String str)构造一个缓冲字符串,其内容初始化为给定的字符串str,再加上16个字符的空间为StringBuffer的对象插入和追加字符串s1.append(s2)s1.insert(int offset,s2)获取和设置StringBuffer对象的长度和容量s1.length()s1.capacity()s1.setLength(int newLength)【例【例5 51616】显示确定字符串的长度和容量,并改变字符串的长度。读取和改变StringBuffer对象中的字符s1

44、.setCharAt(int index,char ch)s1.replace(int start,int end,s2)s1.delete(int start,int end)s1.deleteCharAt(int index)【例例5 51717】改变字符串的内容。StringBufferStringBuffer类的常用方法类的常用方法VectorVector类类1 1属性属性protected int capacityIncrementprotected int elementCountprotected Objected elementData2 2构造方法构造方法Vector()Ve

45、ctor(Collection c)Vector(int initialCapacity)Vector(int initialCapacity,int capacityIncrement)3.3.常用的常用的方法方法 向向量中添加元素void addElement(Object obj)void insetElementAt(Object obj,int index)5.5 Java5.5 Java中的集合类中的集合类 从向量中删除元素对象void removeAllElement()void removeElement(Object ob)void removeElementAt(int i

46、ndex)搜索向量中的元素Object firstElement()Object lastElement()Object ElementAt(int index)Boolean contains(Object elem)获取向量的基本信息int capacity()int size()【例例5 51818】使用Vector类的示例。Stack类Stack是Vector的一个子类,它实现标准的后进先出堆栈。Stack 仅仅定义了创建空堆栈的默认构造方法。boolean empty()Object peek()Object pop()Object push(Object element)int s

47、earch(Object element)【例【例5 51919】向堆栈中添加元素并弹出。本例中使用了Java 异常处理。HashtableHashtable类类Hashtable类描述的是散列表,也称哈希表,它通过映射集合的方式,将一个元素通过其关键字与其存储位置相关联。散列表使用关键字查找元素,而不是使用线性搜索技术来查找元素,从而使查找性能大幅度提升。Hashtable类的构造方法有:public Hashtable()public Hashtable(int initalcapacity)public Hashtable(int initalcapacity,float loadfac

48、tor)Hashtable类几个常用的方法:Object put(Object key,Object value)Object get(Object key)Object remove(Object key)boolean containsValue(Object value)boolean containsKey(Object key)public int sizesize()public boolean isEmptyisEmpty()public void clearclear()【例例5 52020】用Hashtable来检验随机数的随机性。foreach的语句格式:for(元素类型t

49、 元素变量x:遍历对象obj)引用了x的Java语句;foreach语句是Java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。【例【例5 52121】foreach语句示例。foreachforeach语句的语句的使用使用一维数组完整的定义和创建格式是:数组元素类型 数组名=new 数组元素类型数组元素个数;数组元素类型 数组名=new 数组元素类型数组元素个数;Java通过main方法从命令行中接收参数。数

50、据类型类包括Character类、Byte类、Short类、Integer类、Long类、Float类、Double类和Boolean类,数据类型类本身包括自己的属性和方法,从而完成许多基本数据类型所不能完成的功能。String类和StringBuffer类用来完成字符串处理,它们都具有多个构造方法(构造函数)。通常使用String类来定义固定长度字符串。当字符串长度空间不确定时,应该使用StringBuffer类,它具有更丰富的功能。Java的集合类是java.util包中的重要内容。常用的有向量类Vector、堆栈类Stack、散列表类Hashtable等。小小 结结JavaJava异常处

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁