版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java编程基础、实例与进阶第1页,共122页。第1章 Java概述第2页,共122页。内容提要学习目标基本知识点示例解析知识拓展第3页,共122页。学习目标掌握面向对象编程的基本概念和基本思想。掌握Java基本的编程和运行环境的安装和配置。了解简单Java程序的编辑、运行过程。第4页,共122页。基本知识点面向对象的基本概念Java开发工具包Java集成开发环境Eclipse第5页,共122页。面向对象的基本概念第6页,共122页。Java开发工具包第7页,共122页。Java集成开发环境Eclipse第8页,共122页。示例解析JDK的安装安装Eclipse利用Eclipse编辑、编译和运
2、行Hello World! 第9页,共122页。JDK的安装演示第10页,共122页。安装Eclipse演示第11页,共122页。利用Eclipse编辑、编译和运行Hello World! 演示第12页,共122页。知识拓展如何利用JDK编译、运行“Hello World!”程序? 第13页,共122页。如何利用JDK编译、运行“Hello World!”程序? 演示第14页,共122页。第2章 Java语言基础知识 第15页,共122页。内容提要学习目标基本知识点示例解析知识拓展第16页,共122页。学习目标掌握Java中的基本数据类型以及数据类型之间的转换。掌握变量与常量以及变量的赋值方法
3、。掌握Java中的运算符。掌握Java中的流程控制语句。掌握使用Java编写过程式程序的基本技能。第17页,共122页。基本知识点标识符与关键字 基本数据类型 数据类型的转换 常量与变量 运算符 流程控制语句 Java程序的基本构成 第18页,共122页。标识符与关键字对程序中的元素命名时使用的记号称为标识符。关键字是一种特殊类型的标识符,具有专门的意义和用途,即在程序中定义标识符时不能使用。 第19页,共122页。break:用于在条件语句或者循环语句中跳出本层循环或者条件的控制。byte:用于定义一个字节类型的量。boolean:用于定义一个布尔类型的量。catch:用于捕获异常。case
4、:用于条件判断语句。class:用于定义新类。char:用于定义一个字符类型的量。double:用于定义一个双精度类型的量。do:用于循环控制。else:用于条件判断语句。false:布尔值“假”。float:用于定义一个浮点类型的量。for:用于循环控制。if:用于条件判断语句。import:用于导入一个包或者一个包中的一个类。第20页,共122页。int:用于定义一个整型类型的量。long:用于定义一个长整型类型的量。new:用于创建一个对象实例。null:空值。package:用于创建一个包。private:声明量或者定义类为私有类型。protected:声明量或者定义类为受保护类型。p
5、ublic:声明量或者定义类为公共类型。return:表明方法执行结束。switch:用于条件判断语句。short:用于定义一个短整型的量。true:布尔值“真”。void:在定义方法时,如果方法的没有返回值时使用。while:用于循环控制。第21页,共122页。基本数据类型Java 类型取值范围大小boolean-1 位byte-1281278 位charUnicode 0Unicode 216-116 位short-215+215-116 位int-231+231-132 位long-263+263-164 位floatIEEE75432 位doubleIEEE75464 位void-N/
6、A第22页,共122页。数据类型之间的转换不同的数据类型之间可以进行混合运算,在进行运算时,不同的数据类型需要先转换成同一种数据类型,这种转换通常自动进行,这种自动的数据类型转换的次序为:byte,short,char int long float double 第23页,共122页。常量与变量常量是用关键字final来修饰的标识符。例如,final int TIMEOUT=3000;变量是Java程序中的基本存储单元,包括变量类型、变量名和作用域等几个部分。例如:int i = 500; char c; 上面的变量声明中int、char是变量的类型,i、c是变量名。第24页,共122页。X为
7、类变量args为方法参数echo、scanner为局部变量ex为异常处理参数第25页,共122页。运算符1.算术运算符主要用来完成算术运算,常用的算术运算符包括+(加),-(减),*(乘),/(除),%(取模),+(递加),-(递减)。2.关系运算符主要用来进行值比较和条件运算,常用的关系运算符包括(大于),=(大于等于),(右移运算符),= 60?是:否;7.其他运算符(1)分量运算符.用来引出某一个类型的分量,如调用某一个对象的一个方法。例如,System.out.println(“hello world!”);(2)下标运算符针对数组设置,用来表示数组的某一个成员,例如,int intA
8、rray = new int4;int0=89;第27页,共122页。(3)实例运算符instanceof用来判断某一个对象是否是某一个类型的一个实例,例如,if(zhang instanceof Human) System.out.println(“zhang is an instance of Human Class!”);(4)内存分配运算符new用来创建某类型的一个新的实例。(5)强制类型转换运算符 (类型)已在类型转换一节中介绍过。(6)方法调用运算符()用来完成对于某一个方法的调用。第28页,共122页。进行混合运算时,运算符的优先顺序从高到低进行,同级运算符从左到右进行。优先次序
9、运算符1. () 2+ - ! instanceof3new (type)4* / % 5+ - 6 = = 8= = != 9&1011| 12&13|14?:15= += -= *= /= %= =16&= |= = = 第29页,共122页。流程控制语句-条件控制语句语句类型语句格式语句功能条件语句if () else if () else if () else if () else 先计算条件1给出的表达式的值,如果为真,则执行语句1,执行完毕后转到该条件语句后面继续执行其他的语句。如果该值为假,则继续判断条件2给出的表达式的值是否为真,以此类推,直到结束。if语句可以嵌套。条件语句s
10、witch () case : case : case : default :先计算switch后面括号内的表达式的值,然后将该值与花括号内case后面整常型表达式1比较,如果不相等,则和整常型表达式2比较,直到default语句为止;如果相等,则执行后面的那个语句序列,直到遇到break语句,则跳出switch语句,执行后面的语句。第30页,共122页。循环控制语句语句类型语句格式语句功能循环语句while (条件)) 先计算条件中给出的表达式的值,如果其值为假,则退出循环,执行后面的语句;否则执行循环体的语句,然后再次计算条件表达式的值,并判断是否执行循环体。循环语句do while ()
11、先执行循环体语句,然后计算条件表达式的值,如果其值为假,则退出循环,执行后面的语句;否则执行循环体语句,然后再次计算条件表达式的值,并判断是否执行循环体。循环语句for (d1; d2; d3) 先计算d1表达式的值,再计算d2表达式的值,如果表达式d2的值为假,则退出循环;否则执行一次循环体语句,然后执行d3语句,再次计算d2表达式的值,并判断是否执行循环体。第31页,共122页。转向控制语句语句类型语句格式语句功能转向语句break;主要用来跳出循环语句转向语句continue;与break语句的区别在于前者是跳出循环,而后者则是只标识本次循环结束,然后回到循环条件判断是否执行下一次循环。
12、第32页,共122页。Java程序的基本构成第33页,共122页。示例解析查看基本数据类型的取值范围 基本数据类型之间的转换 奇偶数判断 判断一个对象是不是某个类的一个实例 学生成绩判断 打印从1到100之间的整数 找出从1至给定整数之间的所有的质数 解一元二次方程 第34页,共122页。查看基本数据类型的取值范围演示第35页,共122页。基本数据类型之间的转换演示第36页,共122页。奇偶数判断演示第37页,共122页。判断一个对象是不是某个类的一个实例演示第38页,共122页。学生成绩判断演示第39页,共122页。打印从1到100之间的整数演示第40页,共122页。找出从1至给定整数之间的
13、所有的质数演示第41页,共122页。解一元二次方程演示第42页,共122页。知识拓展学生成绩判断如何使用switch语句实现? 如何使用递归函数? 第43页,共122页。学生成绩判断如何使用switch语句实现?演示第44页,共122页。如何使用递归函数?演示第45页,共122页。第3章 面向对象的编程方法第46页,共122页。内容提要学习目标基本知识点示例解析知识拓展第47页,共122页。学习目标掌握类的基本概念与构造。掌握对象的基本概念与构造对象的方法和过程。掌握封装的基本概念与类实现封装的原理。掌握继承的基本概念与通过继承派生子类的方法。掌握多态的概念与原理。掌握抽象类和接口的使用。掌握
14、面向对象编程的基本技能。第48页,共122页。基本知识点类对象类的封装类的继承类的多态抽象类与接口第49页,共122页。类类的声明publicabstractfinal class className extends superClass implements interface1, ., interfaceN.第50页,共122页。类的定义类的定义如下:class className 成员属性的定义; 成员方法的定义;第51页,共122页。对象类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。对象的创建public | protected | privat
15、e final static transient volatile type objectName = new type(paramList);第52页,共122页。对象的访问通过分量(.)运算符可以访问创建的对象的属性和方法,访问控制由类中属性和方法访问权限修饰符来决定。对象的销毁Java中创建的对象不需要显示的书写销毁语句来销毁,当不存在对一个对象的引用时,该对象成为一个无用对象。Java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。 第53页,共122页。类的封装通过类封装,实现了模块化和信息隐藏。通过对类的成员施以一定的访问权限,实现了类中成员的信息隐藏
16、。Java提供了3种访问权限的修饰符:private、protected和public。通过这3种修饰符可以实现类中不同的成员由不同的访问者访问的目的。第54页,共122页。类的继承通过继承可以实现代码复用,继承而得到的类称为子类,被继承的类称为父类。子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。继承的格式为:publicabstractfinal class className extends superClass第55页,共122页。类的多态面向对象的多态指的是在一个程序中,同名的不同方法重载的情况。在Java中多态的存在一
17、般由两种形式:一种是在继承中,子类通过对父类方法的覆盖(方法同名、输入参数列表相同、返回值相同)实现多态,这种情况被称为运行时多态或者叫做运行期类型鉴定;还有一种情况是在同一个类中方法的重载(方法同名、参数列表不同),这被称作编译时多态。多态可以提高类的抽象性和封装性,统一相关类的对外接口。第56页,共122页。抽象类在Java语言中,用abstract 关键字修饰一个类时,该类称为抽象类,用abstract 关键字来修饰一个方法时,该方法称作抽象方法。 抽象类的格式如下:abstract class abstractClass 抽象类必须被继承,抽象类不能被实例化,抽象类不一定要包含抽象方法
18、。第57页,共122页。抽象方法的定义格式如下:abstract returnType abstractMethod(paramlist);抽象方法必须被重写,抽象方法只需声明,无需实现。若类中包含了抽象方法,则该类必须被定义为抽象类。第58页,共122页。接口接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。接口的定义包括接口声明和接口体。接口声明的格式如下:public interface interfaceNameextends superInterfaceList 第59页,共122页。在类的声明中用implements子句来表示一个类使用某个接
19、口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。一个类可以实现多个接口,在implements子句中用逗号分开。格式如下:publicabstractfinal class className implements interface1, ., interfaceN.第60页,共122页。示例解析访问控制符的作用范围 方法重载 构造方法的重载 类继承中的实例对象的构造顺序 final类不允许派生子类 类继承中属性和方法的继承与覆盖 基于接口实现多继承 第61页,共122页。访问控制符的作用范围演示第62页,共122页。方法重载演示第63页,共122页。构造方法的重载演示
20、第64页,共122页。类继承中的实例对象的构造顺序演示第65页,共122页。final类不允许派生子类演示第66页,共122页。类继承中属性和方法的继承与覆盖演示第67页,共122页。基于接口实现多继承演示第68页,共122页。知识拓展在Java中如何判断两个类对象的值是否相等? 在Java中怎样实现值传送? 第69页,共122页。在Java中如何判断两个类对象的值是否相等?演示第70页,共122页。在Java中怎样实现值传送?演示第71页,共122页。第4章 Java常用类库和数据结构 第72页,共122页。内容提要学习目标基本知识点示例解析知识拓展第73页,共122页。学习目标掌握Java
21、中常用类库及其使用方法。掌握数组的使用方法。掌握Java常见的数据结构。第74页,共122页。基本知识点String对象和StringBuffer对象 System类 Math对象 数组 常用集合类 第75页,共122页。String对象和StringBuffer对象由字符组成的一串文字符号被称为字符串。字符串是Java中经常使用的对象,在Java中字符串实现在类java.lang.String和java.lang.StringBuffer中。 字符串对象的声明和初始化,String类和StringBuffer类提供了若干个构造方法用于初始化一个字符串变量,例如:String str = “一
22、个字符串”;StringBuffer buffer = new StringBuffer(“一个字符串”);第76页,共122页。获得字符串对象的属性,在创建一个字符串对象以后,String和StringBuffer提供一些方法用于访问字符串对象的属性。类String中提供了:length( ):获得字符串中字符的个数;charAt( ) 获得指定位置的字符;indexOf( ) :获得一个字符(或者字符串)在字符串中第一次出现的位置;lastIndexOf( ) :获得一个字符(或者字符串)在字符串中最后一次出现的位置;getChars( ) :提取子字符串; 第77页,共122页。Stri
23、ng类还提供了方法:concat( ):用于将当前字符串对象与给定字符串连接起来;replace( ):把串中出现的所有特定字符替换成指定字符以生成新串;substring( ):得到字符串中指定范围内的子串;toLowerCase( ):把串中所有的字符变成小写;toUpperCase( ):把串中所有的字符变成大写;equals( ):两个字符串的值是否相等;equalsIgnoreCase( ):表示忽略字母的大小写;第78页,共122页。StringBuffer类提供的方法:append( ):在已有字符串末尾添加一个字符串;insert( ):在字符串的索引位置处插入字符串;setC
24、harAt( ) :设置指定索引index位置的字符值; 第79页,共122页。字符串与其他类型的数据之间的转换java.lang.Object中提供了方法toString( )把对象转化为字符串,任何类在实现时应该覆盖这个方法。对于字符串到基本数据类型的转换,在基本类型的包装类(在第二章中有所介绍)中都提供了一个静态方法,用于完成字符串到其他基本数据类型的转换。例如,把一个字符串转换为一个整型数据: String str = “123”; int i = Integer.parseInt(str);第80页,共122页。System类java.lang.System类提供了若干个有用的属性和
25、方法,用来获得系统相关的属性和操作。System所有的属性和方法都是静态的,也就是说在使用这些属性和方法的时候不需要创建System对象。第81页,共122页。Math对象java.lang.Math类包含了执行基本的数值操作(如指数、对数、平方根)的方法。Math类提供的用于数学运算的属性和方法都是静态的,在使用这些属性和方法的时候不需要创建Math对象。Math类包含两个静态常量E和PI,在用户程序中需要这两个常量的时候可以不加创建的使用。Math类提供的常用的数学运算方法包括求绝对值、求角度的正弦、余弦、正切值、求指数、求对数、方根、最大值、最小值等。对于Math类没有提供的一些高级数学
26、运算,可以在Math类提供的这些基本数学运算的基础上自己定制实现。第82页,共122页。数组数组实际就是一组数据,每一个数据都会有一个索引值,只要指定索引值就可以取出数据。在Java中定义一个数组的时候,生成了一个数组对象,将数组作为一个对象来操作。 第83页,共122页。常用集合类在容纳一组对象的时候,出于效率的考虑,应该首选数组。但是如果不能确切的知道最终需要多少对象的时候,数组不能发挥很好的作用。这种情况下,Java提供了一系列的集合类。 Vector(矢量)类 Stack(堆栈)类 Hashtable(哈西表)类 第84页,共122页。示例解析String类常见操作 StringBuf
27、fer类常见操作 获得系统属性 回显字符串打印乘法表两个矩阵相加 两个矩阵相乘 读取并显示文件内容 Hashtable类的应用 第85页,共122页。String类常见操作演示第86页,共122页。StringBuffer类常见操作演示第87页,共122页。获得系统属性演示第88页,共122页。回显字符串演示第89页,共122页。打印乘法表演示第90页,共122页。两个矩阵相加演示第91页,共122页。两个矩阵相乘演示第92页,共122页。读取并显示文件内容演示第93页,共122页。Hashtable类的应用演示第94页,共122页。知识拓展如何读取并反序显示文件内容? 如何使得集合类能够识别
28、对象的类型? 如何方便地对一组对象进行排序? 第95页,共122页。如何读取并反序显示文件内容?演示第96页,共122页。如何使得集合类能够识别对象的类型?演示第97页,共122页。如何方便地对一组对象进行排序?演示第98页,共122页。第5章 Java I/O系统第99页,共122页。内容提要学习目标基本知识点示例解析知识拓展第100页,共122页。学习目标掌握流的概念。掌握字节流和字符流的使用方法。掌握常见的文件操作。了解对象的序列化和反序列化。 第101页,共122页。基本知识点流字节流字符流文件操作对象序列化第102页,共122页。流Java把这些不同类型的输入、输出源抽象为流(str
29、eam),表示了字符或者字节数据的流动序列。输入流读取数据,输出流写入数据。不同流的实现类读写某一种数据源,但是所有的输出流都有相同的基本方法写入数据,而输入流也使用相同的基本方法来读取数据。 第103页,共122页。字节流从java.io.InputStream和java.io.OutputStream派生出来的一系列类,这类流以字节(byte)为基本处理单位,称为字节流。这些类有:InputStream、OutputStream,两个抽象类,所有其它面向数据流的输入/输出类都要扩展这两个基类。FileInputStream、FileOutputStream,继承自InputStream和O
30、utputStream,用于从文件读取数据或者向文件中写入数据。PipedInputStream、PipedOutputStream,继承自InputStream和OutputStream,用于在不同线程(threads)间直接传送数据。一个线程发送数据到输出管道,另一个线程从输入管道中读数据。第104页,共122页。ByteArrayInputStream、ByteArrayOutputStream,继承自InputStream和OutputStream,用于读写内存中的一段缓冲区。FilterInputStream、FilterOutputStream,继承自InputStream和Out
31、putStream,提供过滤输入流和过滤输出流。DataInputStream、DataOutputStream,继承自InputStream和OutputStream,用于从流中读取和写入一些基本的数据类型。BufferedInputStream、BufferedOutputStream,在读取和写入数据的时候使用缓冲区。第105页,共122页。字符流从Reader和Writer派生出的一系列类,这类流以Unicode码表示的字符为基本处理单位,称为字符流。Reader、Writer,用于读取和写入字符流的抽象类。InputStreamReader、OutputStreamWriter,继承自Reader和Writer,是字符流通向字节流的桥梁,将要向其读取或者写入的字符编码为字节。FileReader、FileWriter,用于从一个文件中获得数据或者向文件中写入数据。CharArrayReader、CharArrayWriter,把字符数组作为读入源或者写入目的。第106页,共122页。PipedReader、PipedWriter,PipedInputStream、PipedOutputStream的字符形式。FilterReader、FilterWriter,FilterInputStream、Filte
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论