第三章 面向对象程序设计ppt课件.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第三章 面向对象程序设计ppt课件.pptx》由会员分享,可在线阅读,更多相关《第三章 面向对象程序设计ppt课件.pptx(79页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 面向对象程序设计中国铁道出版社Java程序设计Java程序设计第三章 面向对象程序设计类和对象3.1使用 Java 库中的类3.2静态变量、常量和方法3.3目录CONTENTE数据域封装3.4this 引用3.5Java程序设计第三章 面向对象程序设计知识目标【知识目标】1了解面向对象的 3 个特征;2熟悉类和对象的创建和使用;3掌握类的封装性;4掌握构造方法的定义和重载Java程序设计第三章 面向对象程序设计教学重难点【能力目标】1掌握类和对象的创建和使用;2掌握 Java 中常用类库的使用。Java程序设计第三章 面向对象程序设计类 和 对 象3.1Java程序设计Java程序设计
2、第三章 面向对象程序设计3.1.1 Java 中类和对象的理解对象具有如下特征: 有一个名字区别于其他对象; 有一些状态用来描述它的某些特征属性; 有一组操作,每个操作决定对象的一种功能或行为;1.对象的概念8抽象的概念电视机 类型Java程序设计第三章 面向对象程序设计9 类定义了通用于一个特定种类的所有对象的状态(变量)和行为(方法)。 类定义为数据和方法的集合。 类和对象的关系: 类是创建对象的模板,对象是类的实例。类对象抽象实例化属性操作数据或变量方法把相似的对象划归成一个类。2.类的概念Java程序设计第三章 面向对象程序设计Java程序设计第三章 面向对象程序设计3.1.2 定义类
3、和创建对象对象中最重要的两种特征内容就是数据和行为。数据。数据就是描述对象的信息的静态信息,称为对象的属性(又称数据/状态)。比如一辆汽车,它的型号、价格、出厂日期等,都是这辆汽车对象的静态信息数据。行为。行为就是这个对象可以完成的动作、操作等,是对象的动态特征,称为对象的方法(又称行为/操作)。例如,汽车可以启动、行驶、刹车等,都是这辆汽车的动态特征。1类的定义Java程序设计第三章 面向对象程序设计Java 中类的定义就是完全模拟了日常生活中类的特征内容。11public class name type variable1; type variableN; type methodname1
4、(parameter-list) /方法体 type methodnameN(parameter-list) /方法体 Java中定义类的通用格式:成员方法(对象行为或操作)成员变量(对象属性或状态)Java程序设计第三章 面向对象程序设计【例 3-1】 定义一个简单的学生类。把学生作为一种类进行定义,为了简单起见,假设学生的属性有姓名、性别、年龄、成绩、学号等。class Student String stuName; char sex; int age; float score; String stuNo;学生学生姓名姓名性别性别年龄年龄成绩成绩学号学号Java程序设计第三章 面向对象程序
5、设计返回类型必须的修饰符可选的方法是包含在类中的函数。定义方法的格式方法名必须的参数列表必须的定义方法的一般格式:access type methodname1(parameter-list) /方法体14class Student String stuName; char sex; int age; float score; String stuNo; void study ( String course ) System.out. println(“学习”+course); 返回类型 方法名参数列表Constructor。学生学生姓名姓名性别性别年龄年龄成绩成绩学号学号学习学习(课程课程)
6、定义方法的格式(例子)2022-5-2114Java程序设计第三章 面向对象程序设计Java程序设计第三章 面向对象程序设计2对象的创建15 名称与类名称相同 没有返回值类型 其主要任务是在创建对象时初始化其内部状态 public class Student String stuName; String stuNO; Student(String name, String number ) stuName = name; stuNo= number; void study(String course)。构造方法构造方法构造方法Java程序设计第三章 面向对象程序设计 使用下列语法可创建对象:
7、new 构造方法; new 调用构造方法来执行对象状态初始化。 用于分配对象内存,并将该内存内容初始化。关键字 new 通常称为创建运算符。public class StudentDemo public static void main(String args) Student stu1 = new Student (“ZhangJie”, “001”); Student stu2= new Student (“LiMing”, “002”); 创建对象stu1创建对象stu2Java程序设计第三章 面向对象程序设计Student stu1 = new Student( “ZhangJie”,
8、 “001”);stu1stu1操作步骤模拟:1声明 stu1Java程序设计第三章 面向对象程序设计stu1操作步骤模拟:2Student stu1 = new Student( “ZhangJie”, “001”);stu1地址:0 x001stuName:StuNo:ZhangJie001声明 stu1创建一个具体的学生Java程序设计第三章 面向对象程序设计Student stu1 = new Student( “ZhangJie”, “001”);ox001stu1 就可以把stu1简称作是一个Student类型的对象stu1.stuName;对象名.属性名或者对象名.方法名()st
9、u1操作步骤模拟:3地址:0 x001stuName:ZhangJieStuNo:001将这个无名对象的引用赋值给对象变量stu1Java程序设计第三章 面向对象程序设计构造方法不允许有返回类型。这个很好理解,一个类中的构造方法就是用来创建这个类的一个对象,没有第二个选择,返回类型的定义有点画蛇添足。它的方法名必须和类名完全一致。这样有个好处,一看构造方法的名称,就知道要构造那个类的对象。调用时机与一般的方法不同。一般的方法是在需要时才调用,而构造方法是在创建实例对象时自动调用,并执行构造方法的内容。如果没有声明一个构造方法,程序会自动为类加入一个无参且什么都不做的构造方法。基于上述特性,构造
10、方法一般用来对对象的数据成员做初始化的赋值。只要构造方法的参数个数不同,或是类型不同,便可定义多个名称相同的构造方法。这个称为方法的重载。方法的重载则意味着使用同样的名字但不同的参数列表、返回值等来定义多个方法。注意Java程序设计第三章 面向对象程序设计3类的封装性学生类的一些属性,比如 age、score 等不希望在程序中被随意改变,再比如 age属性是 int 类型,如果赋值为负数,在程序中是不会有错的,但是不符合现实生活常理。所以在设计一个类的时候,应该对成员变量的访问做一些限定,在允许的范围内进行访问和使用。这就需要设计类的封装。例如,在定义一个类的时候,把类的成员私有化,即用 pr
11、ivate 来修饰。私有成员只能在这个类体内部使用。为了让外界也可以访问到私有成员,需要设置一些公共的方法来获得或者设置这些属性的值。习惯上可以用 setXxx()、getXxx()形式来命名这些方法,这些方法又称设置器和获取器。Java程序设计第三章 面向对象程序设计【例 3-3】 定义一个汽车类。分析:现在我们已经知道 Java 类的定义和对象的创建方法,有了类,就像是有了设计蓝图,就可以根据蓝图来实现设计。正确的声明了 Java 类,就可以在其他类或应用程序中使用该类,比如创建该类对象并访问操作对象成员等。汽车类 CarObject 中列出了汽车类的常用方法和属性。程序清单:Java程序
12、设计第三章 面向对象程序设计4基本数据类型和引用数据类型的区别 i 基本数据类型赋值 i = j Before: 1 j 2 i After: 2 j 2 c1 引用类型赋值 c1 = c2 Before: c2 c1 After: c2 c1: Circle radius = 5 C2: Circle radius = 9 c1: Circle radius = 5 C2: Circle radius = 9 基本数据类型在被创建时,在内存中(栈上)给其划分一块内存,将数值直接存储在栈上;引用数据类型在被创建时,首先要在栈上给其引用分配一块内存,而对象的具体信息都存储在堆内存上,然后由栈上面
13、的引用指向堆中对象的地址。在执行完 c1=c2 之后,c1 和 c2 指向同一个对象。c1 之前引用的对象不再有用,因此就会成为垃圾(garbage)。为了防止垃圾占用太多内存,Java 的垃圾回收机制会检测垃圾并自动回收空间,这个过程称为垃圾回收。Java程序设计第三章 面向对象程序设计使用 Java 库中的类3.2Java程序设计Java程序设计第三章 面向对象程序设计Java 类库中的类和接口大多封装在特定的包里,每个包具有自己的功能。Java 提供了极其完善的技术文档。用户只需了解技术文档的格式就能方便地查阅文档。下面给大家介绍几个常用的类来解决常见问题,比如生成随机数字、数学公式的处
14、理、显示一个日历,或者找到特定的日期(如生日)等。在学习过程中要学会举一反三,掌握查阅技术文档,使用新的类库的方法。3.2.1 Date 类System.currentTimeMillis()方法可以获取当前系统时间,Java 在 java.util.Date 类中还提供了与系统无关的对日期和时间的封装。java.util.Date 中的常用方法如表 3-1所示。java.util.Date+Date()为当前时间创建一个Date对象+Date(elapseTime: long)为一个从格林威治格林威治时间1970年1月1日至今流逝的毫秒数参数,建立一个日期对象的以毫秒为单位计算的给定时间创建
15、Date对象+toString():String返回一个代表日期的字符串+getTime: long返回从从格林威治格林威治时间1970年1月1日至今流逝的毫秒数+setTime(elapseTime: long):void设置一个新的流逝时间表3-1 中的常用方法中的常用方法例如,使用下面的语句可以创建一个日期对象的信息:java.util.Date date=new java.util.Date();System.out.println(现在距1970 年1月1日0:0:0的时间差是:+date.getTime ()+毫秒;System.out.println(date.toString(
16、);Java程序设计第三章 面向对象程序设计3.2.2 Random 类在数学类 Math 中有个方法Math.random(),可以获取一个 0.0 到 1.0(不包括1.0)之间的随机 double 值。java.util.Random 可以产生一个 int、long、double、float和 boolean 类型的值。java.util.Random 中的常用方法如表 3-2 所示。java.util.Random+Random()以当前时间作为种子创建一个Random对象+Random(seeds: long)以特定时间为种子创建一个Random对象+nextInt(): int返回
17、一个随机int值+nextInt(n: int): int返回一个0到n(不包含n)之间的随机int类型值+nextLong(): long返回一个随机的long值+nextDouble(): double返回一个随机的Double值(0.0到1.0之间,不包含1.0)+nextFloat(): float返回一个随机的float值(0.0F到1.0F之间,不包含1.0F)+nextBoolean(): boolean返回一个随机的boolean值表3-2 中的常用方法中的常用方法Java程序设计第三章 面向对象程序设计Ramdom random1=newRandom(3);System.ou
18、t.print(第 1 组随机值:);for (int i=0;i10;i+)System.out.print(random1.nextInt(1000)+ );Ramdom random2=newRandom(3);System.out.print(第 2 组随机值:);for(int i=0;i10;i+)System.out.print(random1.nextInt(1000)+ );如果两个 Random 对象有相同的种子,那它们将产生相同的数列。例如:第 1 组随机值:722 630 552 789 354 448 256 145 846 965第 2 组随机值:722 630 5
19、52 789 354 448 256 145 846 965代码会产生 1000 以内的相同序列的 int 随机数值,例如:所以,有时也将两个 Random 对象有相同的种子产生相同的随机数列的情况称为“伪随机”。Java程序设计第三章 面向对象程序设计3.2.3 Point2D 类Java API 在 javafx.geometry 包中有一个便于使用的 Point2D 类,用于表示二维平面上的点。主要方法如表 3-3 所示。javafx.geometry.Point2D+Point2D(x: double, y: double)返回该点到给定点(x, y)之间的距离+distance(x:
20、 double, y: double): double返回该点到给定点p之间的距离+distance(p: Point2D): double返回两点间的距离+getX(): double返回x坐标+getY(): double返回y坐标+toString(): String返回该点的字符串表表3-3 中的常用方法中的常用方法Java程序设计第三章 面向对象程序设计【例 3-4】 计算两个点之间的距离。import java.util.Scanner;import javafx.geometry.Point2D;public class TestPoint2D public static voi
21、d main(String args) Scanner input = new Scanner(System.in);System.out.print(输入 p1 点的 x-,y-坐标:);double x1 = input.nextDouble();double y1 = input.nextDouble();System.out.print(输入 p2 点的 x-,y-坐标:);double x2 = input.nextDouble();double y2 = input.nextDouble();Point2D p1 = new Point2D(x1,y1);Point2D p2 =
22、new Point2D(x2,y2);System.out.println(p1 是 + p1.toString();System.out.println(p2 是 + p2.toString();System.out.println(两点 p1 和 p2 的距离是: + p1.distance(p2);Java程序设计第三章 面向对象程序设计3.2.4 Math 类Math 中的方法分为三类:三角函数、指数函数方法和服务方法。服务方法主要提供取整、求最小值、求最大值、求绝对值和随机方法。除了这些方法之外,Math类还提供了常量:Math.PI 记录圆周率;Math.E 记录 e 的常量。下面
23、介绍一些常用方法的使用。1三角函数Math.sin 正弦函数 Math.asin 反正弦函数Math.cos 余弦函数 Math.acos 反余弦函数Math.tan 正切函数 Math.atan 反正切函数Math.toDegrees 弧度转化为角度 Math.toRadians 角度转化为弧度2指数函数Math 类中有 5 个指数函数的方法,如表 3-4 所示。Math.sqrt(x) 返回x的平方根Math.pow(a,b)返回a的b次方Math.exp 返回e的任意次方Math.log10(x)返回x的以10为底的对数Math.log 返回x的自然对数表3-4 指数函数方法Java程序
24、设计第三章 面向对象程序设计3取整方法Math 中的取整方法如表 3-5 所示。Math.rint(x) 求距离某数最近的整数,如果距离相等返回偶数,返回double类型Math.round(x)返回Math.floor(x+0.5)返回int型或者long类型Math.floor(x) 向下取整,返回double类型 Math.ceil(x)向上取整,返回double类型表3-5取整方法例如:Math.floor(12.7) /返回 12.0Math.floor(-2.1) /返回-3.0Math.ceil(12.7) /返回 13.0Math.ceil(2.1) /返回 3.0Math.r
25、ound(-2.6) /返回-3Math.round(-2.4) /返回-2Math.rint(4.5) /返回 4.0Math.rint(-2.1) /返回-2.0提示:ceil()是天花板,即向上取整。Floor()是地板,即向下取整。Round()是四舍五入。Java程序设计第三章 面向对象程序设计4min、max 和 abs 方法min、max 和 abs 方法如表 3-6 所示。min 和 max 分别返回(int、long、float 或 double 类型)的最小值和最大值。abs返回一个数(int、long、float 或 double 类型)的绝对值。Math.abs(x)返
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三章 面向对象程序设计ppt课件 第三 面向 对象 程序设计 ppt 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内