下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 绪论,1. 了解Java的发展简史; 2. 理解Java 对软件开发技术的影响; 3. 了解Java的应用前景及特点; 4. 理解面向对象程序设计的基本概念; 5. 为本课程后续的学习打下思想和认识的基础。,教学目的要求,1.1 Java发展简史 在 Internet上出现的特别吸引人的事件就是Java语言和用Java编写的浏览器 HotJava。 1991年,SUN MicroSystem公司的 Jame Gosling、 Bill Joe等人,为在电视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的软件(是一种橡树的名字 ),但当时并没有引起人们的注意,直
2、到 1994年下半年,Internet的迅猛发展,环球信息网 WWW的快速增长,促进了 Java语言研制的进展,使得它逐渐成为 Int ernet上受欢迎的开发与编程语言,一些著名的计算机公司纷纷购买了 Java语言的使用权,如 MicroSoft、 IBM、 Netscape、 Novell、Apple、 DEC、 SGI等 等。,有心栽花花不成,无心插柳柳成荫,1.2 为什么要学习Java,高层评价 PC Magazine评Java为1995年十大优秀科技产品 ; 比尔盖茨(Bill Gates) “Java是长时间以来最卓越的程序设计语言” ; 环球信息网WWW的创始人Berners-L
3、ee说:“计算机事业发展的下一个浪潮就是 Java,并且将很快会发生的” 。,主要特点 1.简单性 Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。 Java略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。,1.2 为什么要学习Java,2.面向对象 Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏 ;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父
4、类所提供的方法,实现了代码的复用。,3.分布性 Java是面向网络的语言。通过它提供的类库可以处理 TCP/IP协议,用户可以通过 URL地址在网络上很方便地访问其它对象。,4.鲁棒性 Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,Java提示出可能出现但未被处理的例外。另外,Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时出现不匹配问题。 5.安全性 用于网络、分布环境下的 Java必须要防止非法的入侵。 Java不支持指针,一切对
5、内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊 ”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。 6.体系结构中立 Java解释器生成与体系结构无关的字节码指令,只要安装了 Java运行时系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于 Java虚拟机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平台运行。,7.可移植性 与平台无关的特性使 Java程序可以方便地被移植到网络上的不同机器。同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由 Java语言实现的,Jav
6、a运行时系统由标准C实现,这使得Java 系统本身也具有可移植性。 8.解释执行 Java解释器直接对Java的字节码进行解释执行。字节码本身携带了许多编译时信息,使得连接过程更加简单。 9.高性能 和其它解释执行的语言(例如BASIC)不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。,10.多线程 多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。 11.动态性 Java的设计使它适合于一
7、个不断发展的环境。在类库中可以自由地加入新的方法和实例变量而不会影响用户程序的执行。另外, Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。,Java Applet Java语言的特性使它可以最大限度地利用网络。 Applet是 Java的小应用程序,它是动态、安全、跨平台的网络应用程序。 Java Applet嵌入 HTML语言,通过主页发布到 Internet。网络用户访问服务器的 Applet时,这些Applet从网络上进行传输,然后在支持 Java的浏览器中运行。由于 Java语言的安全机制,用户一旦载入 Applet,就可以放心地来生成多媒体的用户界面或完
8、成复杂的计算而不必担心病毒的入侵。虽然 Applet可以和图像、声音、动画等一样从网络上下载,但它并不同于这些多媒体的文件格式,它可以接收用户的输入,动态地进行改变,而不仅仅是动画的显示和声音的播放。,丰富的类库 1.语言包提供的支持包括字符串处理、多线程处理、异常处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。 2.实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。 3.输入输出包用统一的 “流 ”模型来实现所有格式的 I/O,包括文件系统、网络输入。 4.抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件,包括窗口、菜单、滚动条、对话框等,使得 Java
9、可以移植到不同平台的机器。 5.低级网络包用于实现 Socket编程。网络包支持 Internet的 TCP/IP协议,提供了与 Internet的接口。它支持 URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。,Java程序运行流程,Java源程序,Java编译器,Java字节码文件,Java Application程序,Java Applet程序,用Java解释器执行,用Web浏览器解释执行,Java虚拟机及运行机制,Java源程序,以.java为扩展名,基于Windows的解释器,基于Linux的解释器,基于Solaris的解释器,基于Mocintosh的解释器,在Wi
10、ndows系统上运行,在Linux系统上运行,在Solaris系统上运行,在Mocintosh系统上运行,应用前景 1.所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等; 2.计算过程的可视化、可操作化的软件的开发; 3.动态画面的设计,包括图形图像的调用; 4.交互操作的设计(选择交互、定向交互、控制流程等); 5.Internet的系统管理功能模块的设计,包括 Web页面的动态设计、管理 和交互操作设计等; 6.Intranet(企业内部网 )上的软件开发(直接面向企业内部用户的软件); 7.与各类数据库连接查询的SQL语句实现; 8.其它应用类型的程序。,Java和 C、 C
11、+ 的比较,1.全局变量 Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。例如 : Class GlobalVar public static global_var; 在类 GlobalVar中定义变量 global_var为 public static,使得其它类可以访问和修改该变量。Java对全局变量进行了更好的封装。而在 C和 C+中,依赖于不加封装的全局变量常常造成系统的崩溃。,对于变量声明、参数传递、操作符、流控制等,Java使用了和 C、 C+ 相同的传统,使得熟悉 C、 C+的程序员能很方便地进行编程。同时,Java为 了实
12、现其简单、鲁棒、安全等特性,也摒弃了 C和 C+中许多不合理的内容。,3.指针 指针是 C、C+中最灵活,也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个 C+中的私有成员,从而破坏安全性,造成系统的崩溃。而 Java对指针进行完全的控制,程序员不能直接进行任何指针操作,例如把整数转化为指针,或者通过指针释放某一内存地址等。同时,数组作为类在Java 中实现,良好地解决了数组访问越界这个C、 C+中不作检查的错误。,2. Goto Java中不支持 C、 C+中支持的 goto语句,而是通过例外处理语句
13、try、Catch、 final等来代替 C、C+中用 goto来处理遇到错误时跳转的情况,使程序更可读且更结构化。,4.内存管理 在 C中,程序员通过库函数 malloc()和 free()来分配和释放内存, C+中则通过运算符 new和 delete来分配和释放内存。再次释放已释放的内存块或未被分配的内存块,会造成系统的崩溃;同样,如果忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在 Java中,所有的数据结构都是对象,通过运算符new为它们分配内存堆。通过new得到对象的处理权,而实际分配给对象的内存可能随程序运行而改变,Java对此自动地进行管理并且进行垃圾收集,有效防止了由于程序员
14、的误操作而导致的错误,并且更好地利用了系统资源。,5.数据类型 在C、C+中对于不同的平台,编译器对于简单数据类型如 int,float 等分别分配不同长度的字节数,例如:int在 IBM PC中为16位,在VAX-11中为32位,这导致了代码的不可移植性,但在Java中,对于这些数据类型总是分配固定长度的位数,如对int型,它总占32位,这就保证了Java的平台无关性。,6.类型转换 在 C、 C+中,可以通过指针进行任意的类型转换,常常带来不安全性,而 Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。,8.结构和联合 C、 C+中的结构和联合中所有成员均为公有,
15、这就带来了安全性问题。Java中不包含结构和联合,所有的内容都封装在类中。,7.头文件 C、 C+中用头文件来声明类的原型以及全局变量、库函数等,在大的系统中,维护这些头文件是很困难的。而 Java不支持头文件,类成员的类型和访问权限都封装在一个类中,运行时系统对访问进行控制,防止对私有成员的操作。同时,Java中用 import语句来与其它类进行通讯,以便使用它们的方法。,9.预处理 C、 C+中用宏定义来实现的代码给程序的可读性带来了困难。在 Java 中,不支持宏,它通过关键字 final来声明一个常量,以实现宏定义中广泛使用的常量定义。,1.3 面向对象程序设计的有关概念简介,对象:,
16、客观世界中的任何一个事物都可以被看成是对象。,抽象:,类:,对象是具体的客观事物从对象过渡到类的过程。,封装:,类是同一种(具有相同属性和行为)对象的集合与抽象,是一种抽象的数据类型。,封装是把对象的属性和行为组合成为一个独立的单位或部件,并尽可能隐蔽对象的内部细节,而只保留必要的对外接口,使之与外部发生联系。,1.3 面向对象程序设计的有关概念简介,继承:,继承是特殊类的对象具有其一般类的全部属性和行为,即称为特殊类对一般类的继承。,多态性:,同一个消息可以根据发送消息对象的不同产生多种不同的行为方式。,第2章 Java程序运行环境,1. 掌握Java运行环境的安装和运行环境变量的设置; 2
17、. 掌握Java帮助文档的安装与使用; 3. 掌握Java应用程序和小程序的程序结构、编制、调试与运行; 4. 了解常用的几种Java集成开发环境,并掌握其中一种Java集成开发环境的搭建; 5. 掌握Java的输入与输出; 6. 知道Java语言在今后学习(特别是在校生的毕业设计)、就业和工作中的作用;了解Internet上的Java资源,掌握获取网上资源的方法。,教学目的要求,2.1 Java运行环境的安装,J2SDK的下载与安装 J2SDK分为以下三个版本: Java 2 Platform, Standard Edition Java 2 Platform, Enterprise Edi
18、tion Java 2 Platform Micro Edition 免费下载J2SE 5.0的网址: 安装J2SDK,2.1 Java运行环境的安装,J2SDK的设置 Windows98 : SET PATH=%PATH%;D:JDK15006BIN SET CLASSPATH=,;D:JDK15006LIB;%CLASSPATH%,2.1 Java运行环境的安装,J2SDK的设置 WindowsXP :,2.2 如何编写并运行Java程序,Java Application程序编辑、编译与运行 Java Application程序的编辑举例 Java Application程序的编译与运行举
19、例,2.2 如何编写并运行Java程序,Java Applet程序编辑、编译与运行 Java Applet程序的编辑举例 Java Applet程序的编译与运行举例,2.3 Java集成开发环境简介,NetBeans 程序编辑与运行举例 Eclipse 程序编辑与运行举例,2.4 Java程序的基本输入与输出,输入输出流的概述 简单输入与输出举例 例2.5 编制一个程序,接收用户从键盘输入的一个字符,之后把用户输入的字符输出来。 /Li2_05.java,单个字符输入与输出举例 import java.io.*; public class Li2_05 public static void m
20、ain(String args) char c=a; System.out.print(Enter a character please:);/A行 try/ B行 c=(char)System.in.read();/ C行 System.out.println(Youve entered character +c); catch(IOException e);/ D行 ,2.4 Java程序的基本输入与输出,例2.6 编制一个程序,接收用户从键盘输入的一个字符串,之后把用户输入的字符串输出来。 /Li2_06.java,字符串输入与输出举例 import java.io.*; public
21、class Li2_06 public static void main(String args) throws IOException/A行 BufferedReader buf= new BufferedReader(new InputStreamReader(System.in);/B行 String str;/C行 System.out.print(请输入一个字符串:); str=buf.readLine();/D行 System.out.println(您输入的字符串是:+str); ,2.4 Java程序的基本输入与输出,例2.7 编制一个程序,接收用户从键盘输入的一个整型数据,之
22、后把用户输入的数据输出来。 /Li2_07.java,单个数值数据输入与输出举例 import java.io.*; public class Li2_07 public static void main(String args) throws IOException int num; String str; BufferedReader buf =new BufferedReader(new InputStreamReader(System.in); System.out.print(请输入一个整数:); str=buf.readLine();/将输入的文字指定给字符串变量 num=Inte
23、ger.parseInt(str);/A行 System.out.println(这个整数是:+num); ,2.4 Java程序的基本输入与输出,字符串转换为各种类型数据的方法,2.5 如何获得Java帮助,下载帮助 使用帮助,2.5 如何获得Java帮助,第3章 Java语言基础,1. 掌握Java中标识符的命名规则; 2. 熟练应用Java的基本数据类型; 3. 掌握Java中的运算符、表达式的运算规则; 4. 养成做注释的良好习惯,并熟练进行Java注释; 5. 熟练运用选择结构和循环结构进行程序设计。,教学目的要求,3.1 标识符和关键字,标识符 标识符用来标志包名、类名、对象名、方
24、法名、变量名、类型名、数组名、文件名有效字符序列称为标识符。通俗地说,标识符就是一个名字。 Java语言规定:标识符由任意多个字母、下划线(_)、美元符号($)和阿拉伯数字组成,并且第一个字符不能是数字。其中的字母包括汉字或其他国家(日本、朝鲜、希腊、罗马等)的文字,下列都是合法的标识符: getMyName4 _yourAge$123moonT3ty,3.1 标识符和关键字,关键字,3.1 标识符和关键字,标识符命名规则 1.每个名字可以由几个单词连接而成。 2.对于类名,每个单词的开头字母应该大写。例如:YourName。 3.对于方法名和变量名,类似类名的命名规则,但是,第一个字母不用大
25、写,例如: 方法:yourMethod() 变量:yourVariable 4.常量应该用全部大写的标识符。例如:YOURCONST。 5.包名应该全部用小写。例如:yourpackage。,3.2 基本数据类型,整数类型(int、short、long、byte),整数类型的有关指标,3.2 基本数据类型,浮点数类型(float、double),浮点类型的有关指标,3.2 基本数据类型,布尔类型(boolean),布尔类型(boolean)只有两个取值:true和false。,字符类型(char),Java使用Unicode格式表示字符。Unicode格式使用双字节编码,能够表示65536个字
26、符,几乎可以表示世界上所有的语言文字的字符。,3.3 常量和变量,常量 1.整型常量 2.浮点常量 3.字符常量 4.字符串常量 5.布尔常量,3.3 常量和变量,变量 在Java编程语言中,对于变量名有下面的必须满足以下条件: 1.它必须是一个合法的标识符; 2.它必须不是一个关键字、布尔型字符(true或者false)或者保留字NULL; 3.在使用中变量名中的字符是区分大小的。 任何变量在使用之前都需要声明。变量的声明、赋值和初始化的格式是: 变量类型 变量名1=变量值1,变量名2=变量值2;,3.4 运算符与表达式,1.赋值运算符和语句 2.算术运算符和算术表达式 3.关系运算符和关系
27、表达式 4.逻辑运算符和逻辑表达式 5.位运算符 6.条件赋值运算符 7.广义赋值运算符 8.对象运算符 9.括号与方括号运算符,3.4 运算符与表达式,运算符优先级及其结合性,3.5 程序中的注释,在Java程序中,允许使用以下三种注释方式: 1.单行注释符(/)。它以/开头,后面跟随注释内容,直至该行末。 2.多行注释符(/* */)。它以/*开头,以*/结束,中间可以有0至任意多行内容作为注释。 3.文档注释符(/* */)。为便于建立Web页面的HTML文档,使用以/*开头,以*/结束的注释。,3.6 类型转换,自动转换,Java自动转换规则,强制转换,(数据类型)变量名或表达式;,3
28、.7 流程控制,选择语句,语法格式1 if (条件表达式) 语句或语句序列;,false,3.7 流程控制,选择语句,语法格式2 if (条件表达式) 语句或语句序列1; else 语句或语句序列2;,条件表达式,语句序列2,true,false,语句序列1,3.7 流程控制,选择语句,语法格式3 if (条件表达式1) 语句或语句序列1; else if (条件表达式2) 语句或语句序列2; else 语句或语句序列n;,选择语句应用举例,例3.8 应用if语句编程,根据一个学生的某门课程成绩x,转换成相应的等级。划分标准为:优秀(90 x100),良好(80 x90),中等(70 x80)
29、,及格(60 x70),不及格(x60)。,/选择结构if语句应用举例,Li3_08.java import java.io.*; public class Li3_08 public static void main(String args) throws IOException float x;/学生成绩 String str; BufferedReader buf; buf=new BufferedReader(new InputStreamReader(System.in); System.out.print(请输入学生的成绩(0 x100):); str=buf.readLine()
30、; x=Float.parseFloat(str); if(x100)/当输入数值不在应有的区间时退出 System.out.println(输入的成绩有误,程序退出。); System.exit(0);,选择语句应用举例,/* 例3.8 应用if语句编程,根据一个学生的某门课程成绩x,转换成相应的等级。划分标准为:优秀(90 x100),良好(80 x90),中等(70 x80),及格(60 x70),不及格(x60)。 */,if(x=90) str=优秀; else if(x=80) str=良好; else if(x=70) str=中等; else if(x=60) str=及格;
31、else str=不及格; System.out.println(学生的这门课程的等级是:+str); ,3.7 流程控制,循环语句,for语法格式 for(表达式1;表达式2;表达式3) 语句序列,for语句应用举例,例3.10 应用for语句编程,完成计算1+2+100和10的阶乘。,/用for语句计算1+2+100和1*2*10,Li3_10.java public class Li3_10 public static void main(String args) int n; long sum=0,fct=1; for(n=1;n=100;n+) sum+=n; System.out.
32、println(1+2+100=+sum); for(n=1;n=10;n+) fct*=n; System.out.println(1*2*10=+fct); ,3.7 流程控制,循环语句,while语法格式 while(条件表达式) 语句序列,do-while语法格式 do 语句序列 while(条件表达式);,while语句应用举例,例3.11 应用while语句编程,完成计算1+2+100和10的阶乘。,/用while语句计算1+2+100和1*2*10,Li3_11.java public class Li3_11 public static void main(String arg
33、s) int n=1; long sum=0,fct=1; while(n=100) sum+=n;n+; System.out.println(1+2+100=+sum); n=1;/注意此处给n重新赋值为1的重要性 while(n=10) fct*=n;n+; System.out.println(1*2*10=+fct); ,do-while语句应用举例,例3.12 应用do-while语句编程,完成计算1+2+100和10的阶乘。,public class Li3_12 public static void main(String args) int n=1; long sum=0,f
34、ct=1; do sum+=n;n+; while(n=100); System.out.println(1+2+100=+sum); n=1;/注意此处给n重新赋值为1的重要性 do fct*=n;n+; while(n=10); System.out.println(1*2*10=+fct); ,循环嵌套应用举例,例3.13 编程完成九九乘法表上三角部分的打印输出。,/输出九九乘法表上三角部分,Li3_13.java public class Li3_13 public static void main(String args) int j,k,m; for(j=1;j30;j+) Sys
35、tem.out.print( ); System.out.println(九九乘法表); for(j=1;j=9;j+) for(k=j;k=9;k+) m=j*k; System.out.print(j+k+=+m+t); System.out.println(); ,第4章 数组和字符串,1. 掌握Java中的数组概念、声明、创建、初始化与使用; 2. 熟练掌握Java的数组编程方法; 3. 掌握Java中字符串的概念; 4. 熟练掌握Java中String类、StringBuffer类中的有关方法应用; 5. 了解向量的声明、添加、修改、删除等操作。,教学目的要求,4.1 数组,声明一维
36、数组有两种格式: 格式一:数组元素类型 数组名 格式二:数组元素类型 数组名,一维数组,为数组分配内存空间的格式如下: 数组名 = new 数组元素的类型数组的长度;,数组的初始化 创建数组后,系统会给每个元素一个默认的值,也可以在声明数组的同时给数组一个初始值,称之为初始化。例如: int num = 2, 5, 4, 1 ;,4.1 数组,一维数组 数组的使用 数组的访问,比如:student 0=18 数组的复制,例如: int num = 9,8, 3, 0, 2; int numCopy =num; numCopy2=9; 一维数组中元素的个数:数组名.length,一维数组应用举例
37、,例4.1逐个输入并计算10个学生的平均成绩。,import java.io.*; public class Li4_01 public static void main(String args) throws IOException int k,count=10;/count为学生的个数 float score=new floatcount;/学生的成绩数组 float floatSum=0.0f,floatAver=0.0f;/学生的总成绩和平均成绩 String str; BufferedReader buf=new BufferedReader(new InputStreamReade
38、r(System.in); for(k=0;kcount;k+) System.out.print(请输入第+(k+1)+个学生的成绩:); str=buf.readLine();scorek=Float.parseFloat(str); floatSum+=scorek; floatAver=floatSum/count; System.out.println(这+count+个同学的平均成绩是:+floatAver); ,4.1 数组,多维数组 声明二维数组有两种格式: 数组元素类型 数组名; 数组元素类型 数组名; 二维数组的初始化 数组名 = new 数组元素的类型 数组的行数数组的列
39、数; 类型 数组名=初值表1,初值表2, 初值表n,; 二维数组的使用 数组名.length 或 数组名行号.length 例如:score0=new float3;,4.1 数组,多维数组 二维数组应用举例:教材例4.3、例4.4 三维及以上多维数组的声明与使用 要声明三维及其以上的多维数组,只要在声明数组时,加上相应的一对对中括号即可。例如:用int A声明三维整型数组,用float B声明四维浮点型数组, 三维数组应用举例:教材例4.5,4.1 数组,多维数组 复制数组的arraycopy()方法,其格式如下: System.arraycopy(sArray,int srcPos,dAr
40、ray,int destPos,int length) 数组复制举例:教材例4.6 数组元素的排序sort()方法,其格式如下: public static void sort(inta) public static void sort(inta,intfromP, inttoP) 数组排序举例:教材例4.7,4.1 数组,多维数组 数组元素的查找binarySearch()方法 ,可以对各种数据类型(char、byte、int、long、float、double等)进行查找。例如,对int型查找的格式如下: public static int binarySearch(int a,int v
41、al) 数组查找应用举例:教材例4.8 数组元素的填充方法,可以是类型为char、byte、short、int、long、float、double或者boolean等数组。例如,整型数组元素填充的格式如下: public static void fill(int a,int val) public static void fill(int a,intfromP,inttoP,intval) 数组元素的填充举例:教材例4.9,4.2 字符串,字符串的声明与创建 声明字符串的格式是: String stringName; 字符串的创建格式: stringName = new String(字符串常
42、量); 或者 stringName =字符串常量; 举例: str= new String ( student ); str= student;,4.2 字符串,与字符串有关的方法 确定字符串的长度 public int length() 取得字符 public char charAt(int index) 取得子串 public String substring(int beginIndex) public String substring(int beginIndex,int endIndex) 字符串内容的比较 public int compareTo(String stringName
43、2) public int compareToIgnoreCase(String stringName2),4.2 字符串,与字符串有关的方法 字符串连接 public String concat(String stringName2) 字符串检索 public int indexOf(int ch) public int indexOf(int ch,int fromIndex) public int indexOf(String stringName2) public int indexOf(String stringName2,int fromIndex) 字符数组转换为字符串 publ
44、ic static String copyValueOf(char ch1) public static String copyValueOf(char ch1,int cBegin,int cCount),4.2 字符串,与字符串有关的方法 字符串转换为字符数组 public void getChars(int sBegin,int sEnd,charch1,int dBegin) public char toCharArray() 将其他数据类型转换为字符串 public static String valueOf(boolean b) public static String value
45、Of(char c) public static String valueOf(int i) public static String valueOf(long L) public static String valueOf(float f) public static String valueOf(double d) 字符串大小写转换 public String toUpperCase() public String toLowerCase(),4.2 字符串,与字符串有关的方法 字符串内容的替换 public String replace(char oldChar,char newChar
46、) 删除字符串的前导空白和尾部空白 public String trim(),4.2 字符串,StringBuffer中有关的方法 字符串缓冲区数据转换为字符串 public String toString() 添加字符 public StringBuffer append(boolean bv) public StringBuffer append(char cv) public StringBuffer append(int iv) public StringBuffer append(long lv) public StringBuffer append(float fv) public
47、 StringBuffer append(double dv) public StringBuffer append(String sv) public StringBuffer append(StringBuffer sbv),4.2 字符串,StringBuffer中有关的方法 插入字符 public StringBuffer insert(intinsertP,boolean bv) public StringBuffer insert(intinsertP,char cv) public StringBuffer insert(intinsertP,charcv,int beginP,
48、int length) public StringBuffer insert(intinsertP,int iv) public StringBuffer insert(intinsertP,long lv) public StringBuffer insert(intinsertP,float fv) public StringBuffer insert(intinsertP,double dv) public StringBuffer insert(intinsertP,String sv),4.2 字符串,StringBuffer中有关的方法 替换字符 public StringBuff
49、er replace(int startP,int endP,String stringv) 删除字符 public StringBuffer delete(intstartP,int endP) public StringBuffer deleteCharAt(int indexP) 清空字符串 public void setLength(intnewLength) 取字符 public char charAt(int index),4.2 字符串,StringBuffer中有关的方法 取子串 public String substring(int startP) public String
50、 substring(int startP,int endP) 字符串反转 public StringBuffer reverse(),4.3 向量*,向量的声明 声明向量类的格式为: Vector v1Vector=new Vector() Vector v2Vector=new Vector(int initCapa,int capaIncr) 上述格式语句生成了向量对象,其名称为v1Vector、v2Vector,Vector()构造了一个空向量v1Vector,使其内部数据数组的大小为10,其标准容量增量为零。Vector(int initCapa,int capaIncr)使用指定的
51、初始容量initCapa和当向量溢出时容量增加的量capaIncr构造了一个空的向量v2Vector。,4.3 向量*,Vector类的方法 添加 public boolean add(E obj) public void addElement(Eobj) 插入 public void insertElementAt(Eobj, intinsertP) 定位 public E elementAt(intindex) public E get(intindex),4.3 向量*,Vector类的方法 重置 public void setElementAt(Eobj, intindex) 删除 p
52、ublic void removeElementAt(intindex) public void removeAllElements() Vector应用举例: 教材例4.10,教学目的要求,理解java语言的面向对象技术,包括面向对象的基本概念、面向对象的程序设计方法; 理解java中的类、包、对象、抽象类、接口和面向对象的特性; 掌握Java语言中类、方法和接口的基本定义及使用方法; 了解包的概念及打包和引入方法; 通过技能实训,掌握一般Java程序的面向对象编程方法,达到熟练开发Java一般程序的目的。,第5章 Java面向对象程序设计,本章内容,5.1 类 5.2 访问控制符与封装 5
53、.3 继承 5.4 非访问控制符 5.5 Java的名字空间和包 5.6 接口,5.1 类,5.1.1 类的定义 5.1.2 类的使用 5.1.3 方法重载 5.1.4 内部类,面向对象回顾(1)-基本思想,面向对象的基本思想面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象、类、继承、封装、消息等基本概念来进行程序设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式。开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和人
54、工智能等。,面向对象回顾(1)-基本思想,1 对象的基本概念对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。 2 类的基本概念 类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。 3 消息 消息就是向对象发出的服务请求,它应该包含下述信息:提供服务的对象标识、服务标识、输入信息和回答信息。服务通常被称为方法或函数。,面向对象回顾(2)-基本特性,1封装性封装性就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节,包含两个含义: 把对
55、象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。 信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界或者说形成一道屏障,只保留有限的对外接口使之与外部发生联系。封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的交叉感染,使软件错误能够局部化,大大减少查错和排错的难度。,面向对象回顾(2)-基本特性,2继承性特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。 一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务,这称为多继承。 在java语言中,称一般类为父类(supercl
56、ass,超类),称特殊类为子类(subclass)。,面向对象回顾(2)-基本特性,3多态性对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。这使得同一个属性或服务在一般类及其各个特殊类中具有不同的语义。例如:几何图形的绘图方法,椭圆和多边形都是几何图的子类,其绘图方法功能不同。,面向对象回顾(3)-面向对象方法学,OOAObject Oriented Analysis 面向对象的分析 OODObject Oriented Design 面向对象的设计 OOIObject Oriented Implementation 面向对象的实现,5.1
57、.1 类的定义,1类声明:类声明中包括关键字Class,类名及类的属性。类声明的格式如下:,classextendsimplements,(1)类定义修饰符 类的说明性修饰符说明类的性质和访问权限,包括public、缺省修饰符、abstract、final。关于修饰符具体含义后面详细介绍。 (2)extends extends说明类的父类,一般形式为extends父类名Java语言中,如果在类说明中无extends,则隐含地假设其父类为Java.lang.object类。,5.1.1 类的定义,2类主体 Java语言中没有独立的函数和过程,所有的子程序都是作为类方法定义的。如下所示: clas
58、sclassName memberVariableDeclarations methodDeclarations,5.1.1 类的定义,3成员变量成员变量的声明方式如下:变量修饰符 其中修饰符包括public、protected、private. public:用来说明公有变量; private:用来说明私有变量; protected:用来说明保护变量。,5.1.1 类的定义,4成员方法说明成员方法定义的一般形式为: 方法修饰符 ()方法体,5.1.1 类的定义,方法修饰符 成员方法修饰符主要有public、private、protected、final、static、abstract和syn
59、chronized共7种,前3种的访问权限、说明形式和含义与成员变量一致。修饰符说明详见5.2、5.4节。 方法的返回值类型 Java语言要求在成员方法说明中必须指明方法返回值的类型,返回值的类型为Java语言的任何数据类型。如果一个成员方法不需要返回值,则其返回值的类型被说明为void。方法返回值用return语句来实现,如果有返回值,那么return语句要带参数,并且return语句中返回的数据类型必须与方法说明中的方法返回值的类型一致。,方法名 成员方法名是Java语言合法的标识符,为了提高程序的可读性,成员方法名一般具有一定的含义。 参数列表 成员方法的参数列表是由逗号分隔的类型及参数名组成,是可选项。类型可以是Java语言的任何数据类型。,方法体 方法体是一个方法定义的主要部分,包含了所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人才建设培养成效承诺函范文5篇
- 客服支持体系优化建议函(6篇)
- 特定信息保护责任书7篇
- 公共安全保障安全责任承诺书3篇范文
- 家庭和谐与幸福守护承诺书9篇范文
- 新能源技术研发进程承诺函(9篇)
- 卓越管理及品质保障承诺书范文8篇
- 领域领先技术保证承诺书(6篇)
- 电子商务基础 课件 项目五 安全收到资金-电子支付、网上银行和互联网金融
- pds系统施工方案(3篇)
- 2026年自贡市市本级招用高校毕业生从事公共服务(58人)笔试参考题库及答案解析
- 【2026年中考复习】全国中考物理真卷综合能力题100道(上)
- 2026年雨季安全驾驶试题及答案
- 高中历史必背阶段特征-2026届高三统编版历史一轮复习(选必融合)
- 博士后开题报告
- 掘进工作面过老巷、过采空区安全技术措施1429
- 中药学电子版教材
- 中央空调系统维保服务报价清单
- TRIZ矛盾矩阵新版48个参数课件
- GB/T 18043-2013首饰贵金属含量的测定X射线荧光光谱法
- GB/T 17478-2004低压直流电源设备的性能特性
评论
0/150
提交评论