04 Java面向对象初步电子课件 Java程序设计案例教程.pptx

上传人:春哥&#****71; 文档编号:90570607 上传时间:2023-05-15 格式:PPTX 页数:53 大小:3.38MB
返回 下载 相关 举报
04 Java面向对象初步电子课件 Java程序设计案例教程.pptx_第1页
第1页 / 共53页
04 Java面向对象初步电子课件 Java程序设计案例教程.pptx_第2页
第2页 / 共53页
点击查看更多>>
资源描述

《04 Java面向对象初步电子课件 Java程序设计案例教程.pptx》由会员分享,可在线阅读,更多相关《04 Java面向对象初步电子课件 Java程序设计案例教程.pptx(53页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、模块4Java面向对象初步学习目标01了解Java面向对象程序设计的思想原则。02掌握类的结构、定义及对象的创建和使用。03掌握成员变量(实例变量、静态变量)和成员常量(实例常量、静态常量)的定义和使用。05理解访问控制、数据安全性、包及封装的概念。04掌握成员方法(实例方法、静态方法)的定义和使用,以及成员方法重载的概念。06掌握构造方法(隐式、显式)的定义和使用,以及构造方法重载的概念。07掌握this关键字的使用。08了解基本数据类型变量和引用数据类型变量在数值传递上的区别。技能目标1.能够在MyEclipse IDE中定义类,以及创建和使用对象。2.能够在MyEclipse IDE中定

2、义和使用成员变量和成员常量。3.能够在MyEclipse IDE中定义和使用成员方法,以及编写setter方法和getter方法。4.能够在MyEclipse IDE中定义和使用构造方法。5.能够在类的定义中使用this关键字。6.能够在MyEclipse IDE中创建包及在源文件中引用包。4.1 回顾与思考在前面几个模块的学习过程中,我们发现Java程序中至少要有一个类,在类所圈定的范围内编写代码。可以认为类是Java程序的核心。把众多的事物归纳、划分为类是人类认识世界、改造世界时经常采用的思维方式。类是具有相同属性和行为的一组对象的集合。类为属于该类的所有对象提供了统一的、综合的、抽象的定

3、义,该类的每个对象则是符合这种定义的一个实体。类和对象的关系就是抽象和具体的关系。类是对象的模板,类的实例化结果便是生成了对象。类的对象也被称为类的实例。4.2 类和对象4.2.1 类的结构类的属性在类中上升为成员变量及成员常量,或称它为全局变量及全局常量。与局部变量及局部常量不同,成员变量及成员常量在整个类中都是可见的。同时,类的行为则上升为成员方法。除了成员变量、成员常量和成员方法外,类至少还要有一个或多个构造方法以便创建有所差异的同型对象。定义类的基本语法格式如下。修饰符 class 类名 成员变量(成员常量);构造方法 成员方法 4.2 类和对象4.2.1 类的结构【例4-1】编写程序

4、定义类Circle,代表圆,能够计算圆的周长和面积。文件名为Circle.java,其代码如下。4.2 类和对象4.2.2 创建对象创建对象就是对类进行实例化。创建对象的基本语法格式如下。类名 对象名;/声明对象对象名=new 构造方法名(实际参数列表);/初始化对象也可以把声明对象和初始化对象合并起来,即类名 对象名=new 构造方法名(实际参数列表);其中方括号中的实际参数列表是可选项,参数间用“,”分隔。4.2 类和对象4.2.2 创建对象【例4-2】创建Circle类的对象。文件名为Example4_2.java,其代码如下。代码中Circle()是Java编译系统提供的默认构造方法。

5、因为在Circle类中没有定义任何构造方法,所以此时Java编译系统就自动提供默认构造方法供用户创建对象使用。4.2 类和对象4.2.3 使用对象对象创建完成后,就可以利用该对象访问类中的各个成员了。使用对象访问或调用类中各类型成员的基本语法格式如下。对象名.成员变量名;/访问成员变量对象名.成员常量名;/访问成员常量对象名.成员方法名(实际参数列表);/调用成员方法4.2 类和对象4.2.3 使用对象【例4-3】在Example4_1.java文件中添加代码,使用Circle类的对象访问其成员变量和成员方法。文件名为Example4_3.java,其代码如下。4.2 类和对象4.2.3 使用

6、对象【例4-3】运行结果如下。该圆的周长为:31.4该圆的面积为:78.54.3 成员变量和成员常量类的成员变量定义了类的对象所拥有的属性。类中的所有构造方法和成员方法都可以访问类的成员变量。类的成员变量的作用域是整个类,所以也称它为全局变量。定义成员变量的基本语法格式如下。访问控制修饰符有public、private、protected和默认等常用的几种。static是可选项,表示成员变量是静态变量(后面详细解释)。初值是可选项。如果没有赋初值,Java编译系统会自动给成员变量赋一个默认值,这一点与局部变量不同。例如,int型的默认值为0,double型的默认值为0.0,实例型的默认值为nu

7、ll,等等。Circle类的成员变量radius的初值即为0.0。4.3 成员变量和成员常量成员变量(常量)中有一类成员变量(常量),其取值跟随各自的对象而改变,对象之间所拥有的成员变量(常量)数据相互独立。这种类型的成员变量(常量)被称为实例变量(常量)。Circle类中的成员变量radius属于实例变量。不同的Circle对象,其radius的数值是不同的。即便是radius数值相同的Circle对象,因为其分属于不同的对象,这些成员变量的数据在存储空间上也是相互独立的,所以称其为实例变量。给对象的实例变量赋值的语法格式如下。4.3.1 实例变量及实例常量4.3 成员变量和成员常量4.3.

8、2 封装【例4-3】中的代码“c.radius=5;”的作用是给成员变量radius赋值。这样直接访问及修改成员变量的数值有一个潜在的危险。例如,“c.radius=-5;”,半径变成了负数,一般情况下这是不允许的。Java是一门安全性很高的语言,如何避免这类情况的出现呢?最彻底的办法是提升成员变量的访问控制级别,将这类非法访问拒之门外。Java通过public、private、protected和默认等修饰符实现访问控制。对于类的成员变量,可以选择private修饰符,使成员变量只能在本类中可见,在类的外部无法被访问。4.3 成员变量和成员常量4.3.2 封装【例4-4】修改【例4-1】的C

9、ircle类,使成员变量radius无法在类的外部被访问。文件名为Circle_revised1.java,其代码如下。4.4 成员方法类的成员方法定义了类的对象所拥有的行为,是具有某种相对独立功能的程序模块,可在不同的程序段中被多次调用。Java抛弃了函数的概念,用方法的概念取而代之。通常有返回值的程序计算模块被称为函数,没有返回值的程序计算模块被称为过程。在Java中,把上述两种调用类型合称为方法。定义成员方法的基本语法格式如下。4.4 成员方法4.4.1 setter方法和getter方法针对成员变量radius,可通过定义get()方法来获取成员变量的值,通过定义set()方法来设置成

10、员变量的值。【例4-5】修改【例4-4】的Circle类,使之能够通过setter和getter成员方法访问成员变量及修改其数据。文件名为Circle_revised2.java,其代码如下。4.4 成员方法4.4.1 setter方法和getter方法【例4-5】代码中粗体部分为增加的setter和getter成员方法。因为PI是成员常量,在初始化后,其值在程序中不可再改动,所以没有针对PI的setter方法。4.4 成员方法4.4.1 setter方法和getter方法也可通过MyEclipse IDE自动生成getter方法和setter方法。操作步骤如下:右击myPro项目下的“Cir

11、cle_revised2.java”文件,在弹出的快捷菜单中选择Source选项。然后在弹出的子菜单中选择“Generate Getters and Setters”命令,或者直接在Source菜单项中选择“Generate Getters and Setters”命令,打开图4-1所示的“Generate Getters and Setters”窗口。图4-1“Generate Getters and Setters”窗口4.4 成员方法4.4.1 setter方法和getter方法【例4-6】修改【例4-3】的Example4_3.java文件,使得能够通过Circle类的setter和g

12、etter成员方法访问成员变量及修改其数据。文件名为Example4_6.java,其代码如下。4.4 成员方法4.4.1 setter方法和getter方法【例4-6】运行结果如下。该圆的半径为:5.0该圆的周长为:31.4该圆的面积为:78.5圆的半径必须大于0!运行结果4.4 成员方法4.4.2 实例方法成员方法中有一类方法必须由已生成的实例或已创建的对象调用执行。此类方法执行后产生的结果依赖于调用它的对象。这种类型的成员方法被称为实例方法。调用实例方法的语法格式如下。实际参数列表是可选项,参数间用“,”分隔。4.4 成员方法4.4.3 成员方法重载在Java同一个类中,允许两个或两个以

13、上的方法有相同的方法名,只要它们的参数数量、类型和次序不同即可。这种情况称为方法重载。有时在同一个类中,多个方法的功能相似,如果用不同的方法名来区分,管理和应用都不方便。采用方法重载的方式定义方法就显得非常简洁、方便。4.4 成员方法4.4.3 成员方法重载【例4-7】成员方法重载。文件名为Example4_7.java,其代码如下。见书本P68-69。运行结果如下:两个整数相加,和为:7三个整数相加,和为:12一个浮点数和一个整数相加,和为:7.5一个整数和一个浮点数相加,和为:7.4两个浮点数相加,和为:7.9一个整数和一个字符串连接,结果为:344.5 构造方法4.5.1 隐式构造方法和

14、显式构造方法Java语言是这样规定的:如果没有定义类的任何构造方法,Java编译系统就自动产生一个构造方法。该构造方法不带参数,方法体为空。那么,在Circle类中,Java编译系统提供的构造方法形如:public Circle()这种由Java编译系统提供的构造方法被称为默认构造方法,也被称为隐式构造方法。类的设计者定义的不带参数的构造方法也可被称为隐式构造方法。与之对应,类的设计者定义的带参数的构造方法则被称为显式构造方法。4.5 构造方法4.5.1 隐式构造方法和显式构造方法【例4-8】、【例4-9】讲解详见书本P70-72。4.5 构造方法4.5.2 构造方法重载“构造方法必须与它所在

15、的类同名”和“一个类可以有多个构造方法”这两条规则决定了构造方法必然是重载的。也就是说,Java类中可以有多个参数数量、类型和次序不同的构造方法存在。4.5 构造方法4.5.2 构造方法重载【例4-10】构造方法重载。文件名为Circle_revised4.java,其代码如下。见书本P72-74。可通过调用同一个类中重载的构造方法来初始化或创建类型上有所差异的对象。4.5 构造方法4.5.2 构造方法重载【例4-11】调用重载的构造方法来创建有类型差异的对象。文件名为Example4_11.java,其代码如下。见书本P74-75。运行结果如下。圆c1的半径为:1.0圆c1的周长为:6.3圆

16、c1的面积为:3.1圆c2的半径为:5.0圆c2的周长为:31.4圆c2的面积为:78.5圆心坐标是(0.0,2.0)圆c3的半径为:5.0圆c3的周长为:31.4圆c3的面积为:78.54.5 构造方法4.5.3 this关键字【例4-12】在构造方法和成员方法中参数变量与成员变量同名。修改【例4-8】中的Circle_revised3类,另存为文件名Circle_revised5.java,其代码如下。见书本P75-76。在构造方法Circle_revised5(double radius)和成员方法setRadius(double radius)中,粗体代码“radius=radius;

17、”处会出现“给变量radius的赋值无效”的语法错误提示。在构造方法Circle_revised5(double radius)和成员方法setRadius(double radius)中的参数变量radius是一个局部变量,其作用范围是其所在方法的内部,在方法外部是不可见的。4.5 构造方法4.5.3 this关键字现总结this关键字的用法如下。(1)访问当前对象的成员变量,基本语法格式如下。this.成员变量;(3)在类的构造方法中调用同一个类中重载的构造方法,基本语法格式如下。this(实际参数列表);(2)访问当前对象的成员方法,基本语法格式如下。this.成员方法;2314.5 构

18、造方法4.5.3 this关键字【例4-13】this关键字的使用。修改【例4-10】中的Circle_revised4类,另存为文件名Circle_revised6.java,其代码如下。见书本P78-80。运行结果如下。圆心坐标是(2.0,3.0)该圆的半径为:5.0该圆的周长为:31.4该圆的面积为:78.54.6 静态成员【例4-14】在Circle_revised5.java文件的基础上修改代码,增加一个成员变量num用来统计所创建的圆的数量,再增加一个成员方法getNum()获取所创建的圆的数量。见书本P81-82。代码中粗体部分为增加的代码,运行结果如下。总共创建了1个圆。总共创

19、建了1个圆。总共创建了1个圆。4.6 静态成员类的成员变量分为两种:4.6.1 静态变量和静态常量实例变量类的成员变量静态变量/类变量4.6 静态成员【例4-15】修改Circle_revised7类,把num由实例变量改为静态变量。修改后的文件名为Circle_revised8.java,其代码如下。4.6.1 静态变量和静态常量见书本P83-85。运行结果如下。总共创建了1个圆。总共创建了2个圆。总共创建了3个圆。静态常量也属于整个类。静态常量在初始化后,它的值就不能再改变了。不同位置和不同大小的圆,其圆周率是一个恒定的值,因此Circle类中的成员常量PI应该定义为静态常量类型。4.6

20、静态成员【例4-16】修改Circle_revised8类,把成员常量PI定义为静态常量类型。文件名为Circle_revised9.java,其代码如下。4.6.1 静态变量和静态常量见书本P85-87。运行结果参考【例4-15】。4.6 静态成员和成员变量一样,类的成员方法也分为两种:4.6.2 静态方法0102实例方法静态方法/类方法4.6 静态成员【例4-17】修改Circle_revised9类,重新定义getNum()方法为静态方法。文件名为Circle_revised10.java,其代码如下。4.6.2 静态方法见书本P87-89。运行结果如下。总共创建了1个圆。总共创建了2个

21、圆。总共创建了3个圆。4.6 静态成员4.6.3 main()方法main()方法前面的修饰依次为public、static和void。因为main()方法是Java程序运行的起点,所以它必须为public,这样在任何地方都可见;在main()方法诞生之前还没有任何对象或实例被创建,main()方法就不可能为任何对象或实例所调用,所以必须为static;main()方法执行后直接产生结果,而不需要把结果送到某个地方去使用,所以main()方法没有返回值,必须为void。4.7 基本数据类型和引用数据类型的比较【例4-18】修改Circle_revised10类的main()方法,增加基本数据类

22、型和引用数据类型的赋值运算及数据修改操作。文件名为Circle_revised11.java,其代码如下。见书本P90-92。运行结果如下。把r1的值赋给r2后,c1的radius值为1.0修改r2的值后,c1的radius值为1.0把c1的引用赋给c2后,c1的radius值为1.0直接修改c2的radius值后,c1的radius值为2.0通过setter方法修改c2的radius值后,c1的radius值为3.04.8 包Java中的包也是面向对象封装原则的体现。在有一定规模的项目设计过程中,程序往往被分割成独立设计的功能块交给不同的程序员去完成。不同的程序员命名了同名的类在所难免,因而

23、会产生类名冲突。所以需要创建若干个包,只有功能和结构上相关联的类才能放在同一个包中,就像把有关联的文件放在同一个文件夹中那样,便于类的管理和使用。包起到了在更广的范围保护数据安全的作用。根据访问规则,拥有包访问权限的类才能访问某个包中的类。4.8 包4.8.1 包的创建在Java源文件中,定义包的基本语法格式如下。上述语句为包的声明语句,package是关键字。它必须是Java源文件中的第一条非注释语句。一个Java源文件只能有一条包声明语句。包声明语句生效后,同一文件内的所有类和接口都被纳入这个包里。Java编译系统把包对应于文件系统的目录进行管理。4.8 包4.8.1 包的创建【例4-19

24、】在MyEclipse IDE的Java项目中创建不同层级的包。步骤如下:右击myPro项目下的src目录,在弹出的快捷菜单中执行“New”“Package”命令,在弹出的“New Java Package”窗口中输入包名ch5.example,如图4-2所示。单击Finish按钮,完成包ch5.example的创建。图4-2 创建包4.8 包4.8.1 包的创建【例4-19】在MyEclipse IDE的Java项目中创建不同层级的包。打开D:MyEclipse8.5myProsrc目录,可以发现其下一级目录ch5,以及目录ch5的下一级目录example。接下来,如果通过MyEclipse

25、 IDE在包ch5.example中创建Java源文件,在所创建的Java源文件的第一行会自动出现代码“package ch5.example;”,它表明所创建的Java源文件属于包ch5.example。4.8 包4.8.2 包的引用如果要使用Java包中的类(包括Java API中的包和自定义的包),必须向源文件导入所需的类,基本语法格式如下。其中,import是关键字。“包名1.包名2.类名|*”表示包的层次关系,与package语句一样对应着文件夹。各级包名及类名之间用“.”分隔符隔开。类名是指所要导入的类。“*”表示导入包下所有的类和接口。4.8 包4.8.3 访问保护对于类的成员而

26、言,可以在任何地方访问任何被声明为public的成员。在类的外部无法访问任何被声明为private的成员。在同一个包中可以访问任何被声明为protected或default的成员。在子类中还可以访问处于不同包中被声明为protected的父类成员。对于类而言,只有两个访问级别:public或default。如果一个类被声明为public,那么它可以被其他任何类访问;如果一个类被声明为default,那么它只能被同一个包中的其他类访问。4.9 小结类是具有相同属性和行为的一组对象的集合。类包括了实例成员(实例变量、实例常量、实例方法)、静态成员(静态变量、静态常量、静态方法)和构造方法。通过构造

27、方法创建类的对象。通过对象调用类的实例成员。通过类名直接调用类的静态成员。通过访问控制及setter方法和getter方法保证数据的安全性。成员方法可以重载,构造方法也可以重载。this关键字用来指代将来被创建的“当前对象”,以区分成员变量和局部变量。对类的成员访问控制有public、protected、default和private 4个级别。对类的访问控制有public和default两个级别。4.10 习题1.给出Exercise4_1.java文件,运行后结果如何?为什么?如果要做到每次初始化后常量i的值都不发生改变,该怎么办?4.10 习题2.“System.out.println(

28、);”这条语句经常被使用。查阅Java API得知System.out运行后产生一个PrintStream类的对象,再由该对象调用println()方法,而PrintStream类属于java.io包。我们知道,除了java.lang包是自动导入的,其余包必须用import语句显性导入。可是,为什么使用“System.out.println();”语句时不需要导入java.io包呢?4.10 习题3.下列代码编译能通过吗?如果不能,说明原因。4.定义类Triangle,代表三角形,提供计算三角形周长和面积的方法。4.11 上 机 实 践1.定义类Rectangle,代表矩形,提供计算矩形周长和面积的方法。2.定义类UQEquation,代表一元二次方程,求解一元二次方程的实数解。3.定义类Fraction,代表分数,能进行两个分数相加。4.编写程序,根据三角形的3条边长,判断其为直角三角形、钝角三角形、锐角三角形还是等边三角形。程序运行结果示例如下。4.11 上 机 实 践谢谢观看!

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

当前位置:首页 > 教育专区 > 高中资料

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

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