Java编程基础、实例与进阶(上)ppt.ppt_第1页
Java编程基础、实例与进阶(上)ppt.ppt_第2页
Java编程基础、实例与进阶(上)ppt.ppt_第3页
Java编程基础、实例与进阶(上)ppt.ppt_第4页
Java编程基础、实例与进阶(上)ppt.ppt_第5页
已阅读5页,还剩117页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java编程基础、实例与进阶,第1章 Java概述,内容提要,学习目标 基本知识点 示例解析 知识拓展,学习目标,掌握面向对象编程的基本概念和基本思想。 掌握Java基本的编程和运行环境的安装和配置。 了解简单Java程序的编辑、运行过程。,基本知识点,面向对象的基本概念 Java开发工具包 Java集成开发环境Eclipse,面向对象的基本概念,Java开发工具包,Java集成开发环境Eclipse,示例解析,JDK的安装 安装Eclipse 利用Eclipse编辑、编译和运行Hello World!,JDK的安装,演示,安装Eclipse,演示,利用Eclipse编辑、编译和运行Hello World!,演示,知识拓展,如何利用JDK编译、运行“Hello World!”程序?,如何利用JDK编译、运行“Hello World!”程序?,演示,第2章 Java语言基础知识,内容提要,学习目标 基本知识点 示例解析 知识拓展,学习目标,掌握Java中的基本数据类型以及数据类型之间的转换。 掌握变量与常量以及变量的赋值方法。 掌握Java中的运算符。 掌握Java中的流程控制语句。 掌握使用Java编写过程式程序的基本技能。,基本知识点,标识符与关键字 基本数据类型 数据类型的转换 常量与变量 运算符 流程控制语句 Java程序的基本构成,标识符与关键字,对程序中的元素命名时使用的记号称为标识符。 关键字是一种特殊类型的标识符,具有专门的意义和用途,即在程序中定义标识符时不能使用。,break:用于在条件语句或者循环语句中跳出本层循环或者条件的控制。 byte:用于定义一个字节类型的量。 boolean:用于定义一个布尔类型的量。 catch:用于捕获异常。 case:用于条件判断语句。 class:用于定义新类。 char:用于定义一个字符类型的量。 double:用于定义一个双精度类型的量。 do:用于循环控制。 else:用于条件判断语句。 false:布尔值“假”。 float:用于定义一个浮点类型的量。 for:用于循环控制。 if:用于条件判断语句。 import:用于导入一个包或者一个包中的一个类。,int:用于定义一个整型类型的量。 long:用于定义一个长整型类型的量。 new:用于创建一个对象实例。 null:空值。 package:用于创建一个包。 private:声明量或者定义类为私有类型。 protected:声明量或者定义类为受保护类型。 public:声明量或者定义类为公共类型。 return:表明方法执行结束。 switch:用于条件判断语句。 short:用于定义一个短整型的量。 true:布尔值“真”。 void:在定义方法时,如果方法的没有返回值时使用。 while:用于循环控制。,基本数据类型,数据类型之间的转换,不同的数据类型之间可以进行混合运算,在进行运算时,不同的数据类型需要先转换成同一种数据类型,这种转换通常自动进行,这种自动的数据类型转换的次序为:byte,short,char int long float double,常量与变量,常量是用关键字final来修饰的标识符。例如,final int TIMEOUT=3000; 变量是Java程序中的基本存储单元,包括变量类型、变量名和作用域等几个部分。例如:int i = 500; char c; 上面的变量声明中int、char是变量的类型,i、c是变量名。,X为类变量,args为方法参数,echo、scanner为局部变量,ex为异常处理参数,运算符,1.算术运算符 主要用来完成算术运算,常用的算术运算符包括+(加),-(减),*(乘),/(除),%(取模),+(递加),-(递减)。 2.关系运算符 主要用来进行值比较和条件运算,常用的关系运算符包括(大于),=(大于等于),(右移运算符),(左移运算符),,6.条件运算符 ? : 用来完成条件判断,并完成变量的赋值,语法如下: 条件语句?条件成立执行语句:条件不成立执行语句; 例如,score = 60?是:否; 7.其他运算符 (1)分量运算符. 用来引出某一个类型的分量,如调用某一个对象的一个方法。例如, System.out.println(“hello world!”); (2)下标运算符 针对数组设置,用来表示数组的某一个成员,例如, int intArray = new int4; int0=89;,(3)实例运算符instanceof 用来判断某一个对象是否是某一个类型的一个实例,例如, if(zhang instanceof Human) System.out.println(“zhang is an instance of Human Class!”); (4)内存分配运算符new 用来创建某类型的一个新的实例。 (5)强制类型转换运算符 (类型) 已在类型转换一节中介绍过。 (6)方法调用运算符() 用来完成对于某一个方法的调用。,进行混合运算时,运算符的优先顺序从高到低进行,同级运算符从左到右进行。,流程控制语句-条件控制语句,循环控制语句,转向控制语句,Java程序的基本构成,示例解析,查看基本数据类型的取值范围 基本数据类型之间的转换 奇偶数判断 判断一个对象是不是某个类的一个实例 学生成绩判断 打印从1到100之间的整数 找出从1至给定整数之间的所有的质数 解一元二次方程,查看基本数据类型的取值范围,演示,基本数据类型之间的转换,演示,奇偶数判断,演示,判断一个对象是不是某个类的一个实例,演示,学生成绩判断,演示,打印从1到100之间的整数,演示,找出从1至给定整数之间的所有的质数,演示,解一元二次方程,演示,知识拓展,学生成绩判断如何使用switch语句实现? 如何使用递归函数?,学生成绩判断如何使用switch语句实现?,演示,如何使用递归函数?,演示,第3章 面向对象的编程方法,内容提要,学习目标 基本知识点 示例解析 知识拓展,学习目标,掌握类的基本概念与构造。 掌握对象的基本概念与构造对象的方法和过程。 掌握封装的基本概念与类实现封装的原理。 掌握继承的基本概念与通过继承派生子类的方法。 掌握多态的概念与原理。 掌握抽象类和接口的使用。 掌握面向对象编程的基本技能。,基本知识点,类 对象 类的封装 类的继承 类的多态 抽象类与接口,类,类的声明 publicabstractfinal class className extends superClass implements interface1, ., interfaceN ,类的定义,类的定义如下: class className 成员属性的定义; 成员方法的定义; ,对象,类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类。 对象的创建 public | protected | private final static transient volatile type objectName = new type(paramList);,对象的访问 通过分量(.)运算符可以访问创建的对象的属性和方法,访问控制由类中属性和方法访问权限修饰符来决定。 对象的销毁 Java中创建的对象不需要显示的书写销毁语句来销毁,当不存在对一个对象的引用时,该对象成为一个无用对象。Java的垃圾收集器自动扫描对象的动态内存区,把没有引用的对象作为垃圾收集起来并释放。,类的封装,通过类封装,实现了模块化和信息隐藏。通过对类的成员施以一定的访问权限,实现了类中成员的信息隐藏。 Java提供了3种访问权限的修饰符:private、protected和public。通过这3种修饰符可以实现类中不同的成员由不同的访问者访问的目的。,类的继承,通过继承可以实现代码复用,继承而得到的类称为子类,被继承的类称为父类。子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。 继承的格式为: publicabstractfinal class className extends superClass,类的多态,面向对象的多态指的是在一个程序中,同名的不同方法重载的情况。 在Java中多态的存在一般由两种形式: 一种是在继承中,子类通过对父类方法的覆盖(方法同名、输入参数列表相同、返回值相同)实现多态,这种情况被称为运行时多态或者叫做运行期类型鉴定; 还有一种情况是在同一个类中方法的重载(方法同名、参数列表不同),这被称作编译时多态。多态可以提高类的抽象性和封装性,统一相关类的对外接口。,抽象类,在Java语言中,用abstract 关键字修饰一个类时,该类称为抽象类,用abstract 关键字来修饰一个方法时,该方法称作抽象方法。 抽象类的格式如下: abstract class abstractClass 抽象类必须被继承,抽象类不能被实例化,抽象类不一定要包含抽象方法。,抽象方法的定义格式如下: abstract returnType abstractMethod(paramlist); 抽象方法必须被重写,抽象方法只需声明,无需实现。若类中包含了抽象方法,则该类必须被定义为抽象类。,接口,接口是抽象类的一种,只包含常量和方法的定义,而没有变量和方法的实现,且其方法都是抽象方法。 接口的定义包括接口声明和接口体。接口声明的格式如下: public interface interfaceNameextends superInterfaceList ,在类的声明中用implements子句来表示一个类使用某个接口,在类体中可以使用接口中定义的常量,而且必须实现接口中定义的所有方法。一个类可以实现多个接口,在implements子句中用逗号分开。格式如下: publicabstractfinal class className implements interface1, ., interfaceN ,示例解析,访问控制符的作用范围 方法重载 构造方法的重载 类继承中的实例对象的构造顺序 final类不允许派生子类 类继承中属性和方法的继承与覆盖 基于接口实现多继承,访问控制符的作用范围,演示,方法重载,演示,构造方法的重载,演示,类继承中的实例对象的构造顺序,演示,final类不允许派生子类,演示,类继承中属性和方法的继承与覆盖,演示,基于接口实现多继承,演示,知识拓展,在Java中如何判断两个类对象的值是否相等? 在Java中怎样实现值传送?,在Java中如何判断两个类对象的值是否相等?,演示,在Java中怎样实现值传送?,演示,第4章 Java常用类库和数据结构,内容提要,学习目标 基本知识点 示例解析 知识拓展,学习目标,掌握Java中常用类库及其使用方法。 掌握数组的使用方法。 掌握Java常见的数据结构。,基本知识点,String对象和StringBuffer对象 System类 Math对象 数组 常用集合类,String对象和StringBuffer对象,由字符组成的一串文字符号被称为字符串。字符串是Java中经常使用的对象,在Java中字符串实现在类java.lang.String和java.lang.StringBuffer中。 字符串对象的声明和初始化,String类和StringBuffer类提供了若干个构造方法用于初始化一个字符串变量,例如: String str = “一个字符串”; StringBuffer buffer = new StringBuffer(“一个字符串”);,获得字符串对象的属性,在创建一个字符串对象以后,String和StringBuffer提供一些方法用于访问字符串对象的属性。类String中提供了: length( ):获得字符串中字符的个数; charAt( ) 获得指定位置的字符; indexOf( ) :获得一个字符(或者字符串)在字符串中第一次出现的位置; lastIndexOf( ) :获得一个字符(或者字符串)在字符串中最后一次出现的位置; getChars( ) :提取子字符串;,String类还提供了方法: concat( ):用于将当前字符串对象与给定字符串连接起来; replace( ):把串中出现的所有特定字符替换成指定字符以生成新串; substring( ):得到字符串中指定范围内的子串; toLowerCase( ):把串中所有的字符变成小写; toUpperCase( ):把串中所有的字符变成大写; equals( ):两个字符串的值是否相等; equalsIgnoreCase( ):表示忽略字母的大小写;,StringBuffer类提供的方法: append( ):在已有字符串末尾添加一个字符串; insert( ):在字符串的索引位置处插入字符串; setCharAt( ) :设置指定索引index位置的字符值;,字符串与其他类型的数据之间的转换 java.lang.Object中提供了方法toString( )把对象转化为字符串,任何类在实现时应该覆盖这个方法。 对于字符串到基本数据类型的转换,在基本类型的包装类(在第二章中有所介绍)中都提供了一个静态方法,用于完成字符串到其他基本数据类型的转换。例如,把一个字符串转换为一个整型数据: String str = “123”; int i = Integer.parseInt(str);,System类,java.lang.System类提供了若干个有用的属性和方法,用来获得系统相关的属性和操作。System所有的属性和方法都是静态的,也就是说在使用这些属性和方法的时候不需要创建System对象。,Math对象,java.lang.Math类包含了执行基本的数值操作(如指数、对数、平方根)的方法。Math类提供的用于数学运算的属性和方法都是静态的,在使用这些属性和方法的时候不需要创建Math对象。 Math类包含两个静态常量E和PI,在用户程序中需要这两个常量的时候可以不加创建的使用。 Math类提供的常用的数学运算方法包括求绝对值、求角度的正弦、余弦、正切值、求指数、求对数、方根、最大值、最小值等。 对于Math类没有提供的一些高级数学运算,可以在Math类提供的这些基本数学运算的基础上自己定制实现。,数组,数组实际就是一组数据,每一个数据都会有一个索引值,只要指定索引值就可以取出数据。在Java中定义一个数组的时候,生成了一个数组对象,将数组作为一个对象来操作。,常用集合类,在容纳一组对象的时候,出于效率的考虑,应该首选数组。但是如果不能确切的知道最终需要多少对象的时候,数组不能发挥很好的作用。这种情况下,Java提供了一系列的集合类。 Vector(矢量)类 Stack(堆栈)类 Hashtable(哈西表)类,示例解析,String类常见操作 StringBuffer类常见操作 获得系统属性 回显字符串 打印乘法表 两个矩阵相加 两个矩阵相乘 读取并显示文件内容 Hashtable类的应用,String类常见操作,演示,StringBuffer类常见操作,演示,获得系统属性,演示,回显字符串,演示,打印乘法表,演示,两个矩阵相加,演示,两个矩阵相乘,演示,读取并显示文件内容,演示,Hashtable类的应用,演示,知识拓展,如何读取并反序显示文件内容? 如何使得集合类能够识别对象的类型? 如何方便地对一组对象进行排序?,如何读取并反序显示文件内容?,演示,如何使得集合类能够识别对象的类型?,演示,如何方便地对一组对象进行排序?,演示,第5章 Java I/O系统,内容提要,学习目标 基本知识点 示例解析 知识拓展,学习目标,掌握流的概念。 掌握字节流和字符流的使用方法。 掌握常见的文件操作。 了解对象的序列化和反序列化。,基本知识点,流 字节流 字符流 文件操作 对象序列化,流,Java把这些不同类型的输入、输出源抽象为流(stream),表示了字符或者字节数据的流动序列。输入流读取数据,输出流写入数据。不同流的实现类读写某一种数据源,但是所有的输出流都有相同的基本方法写入数据,而输入流也使用相同的基本方法来读取数据。,字节流,从java.io.InputStream和java.io.OutputStream派生出来的一系列类,这类流以字节(byte)为基本处理单位,称为字节流。这些类有: InputStream、OutputStream,两个抽象类,所有其它面向数据流的输入/输出类都要扩展这两个基类。 FileInputStream、FileOutputStream,继承自InputStream和OutputStream,用于从文件读取数据或者向文件中写入数据。 PipedInputStream、PipedOutputStream,继承自InputStream和OutputStream,用于在不同线程(threads)间直接传送数据。一个线程发送数据到输出管道,另一个线程从输入管道中读数据。,ByteArrayInputStream、ByteArrayOutputStream,继承自InputStream和OutputStream,用于读写内存中的一段缓冲区。 FilterInputStream、FilterOutputStream,继承自InputStream和OutputStream,提供过滤输入流和过滤输出流。 DataInputStream、DataOutputStream,继承自InputStream和OutputStream,用于从流中读取和写入一些基本的数据类型。 BufferedInputStream、BufferedOutputStream,在读取和写入数据的时候使用缓冲区。,字符流,从Reader和Writer派生出的一系列类,这类流以Unicode码表示的字符为基本处理单位,称为字符流。 Reader、Writer,用于读取和写入字符流的抽象类。 InputStreamReader、OutputStreamWriter,继承自Reader和Writer,是字符流通向字节流的桥梁,将要向其读取或者写入的字符编码为字节。 FileReader、FileWriter,用于从一个文件中获得数据或者向文件中写入数据。 CharArrayReader、CharArrayWriter,把字符数组作为读入源或者写入目的。,PipedReader、PipedWriter,PipedInputStream、PipedOutputStream的字符形式。 FilterReader、FilterWriter,FilterInputStream、FilterOutputStream的字符形式。 BufferedReade

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论