版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2020/7/22,1,Java面向对象编程,第2版,第4章,与第2版的源代码一起使用,由Power point制作:耿祥义,张跃平,Classes and Objects,2020/7/22,2,主要内容Class Object parameter-bearing Object composition static关键字this关键字package import语句jar文件困难参数-bearing Object composition package and import语句,简介,2020/7/22,3,4.1,编程语言的几个发展阶段,面向机器语言,面向过程类是用于定义对象的模板。类的实
2、现包括两个部分:类声明和类体。基本格式为:类名的类体内容、2020/7/22、5、4.2.1的类声明、类声明:类名称如“类人”、“类动物”称为类声明;“人”和“动物”分别是类名。命名一个类时,请注意以下编程风格(这不是语法所要求的,但应该遵守):1如果类名使用拉丁字母,则该名称的第一个字母使用大写字母,例如。类名应该易于识别和理解。当类名由几个单词组成时,每个单词的第一个字母是大写的。2020/7/22,6,4.2.2类体,类声明后的一对大括号、 和它们之间的内容称为类体,大括号之间的内容称为类体的内容。类体的内容由两部分组成:一部分是变量的声明,用于描述属性;另一部分是方法的定义,用于描述函
3、数。2020/7/22,7,4.2.3成员变量和局部变量。在类主体的变量声明部分声明的变量称为类的成员变量。方法体中声明的变量和方法的参数称为局部变量。变量类型:成员变量和局部变量可以是Java中的任何数据类型,包括基本类型:整数、浮点和字符;引用类型:数组、对象和接口(对象和接口见下文)。2变量的有效范围:成员变量在整个类中有效,而局部变量只在声明它们的方法中有效。方法参数在整个方法中有效,方法中的局部变量在声明其位置后有效。3实例变量和类变量:当声明成员变量时,那些被关键字static修改的被称为类变量,否则它们被称为实例变量(类变量也被称为静态变量,静态变量)。4成员变量隐藏:如果局部变
4、量的名称与成员变量的名称相同,则成员变量被隐藏,也就是说,成员变量在此方法中暂时无效。5编程风格(1)一行中只声明一个变量。(2)变量的名称符合标识符。(3)变量名是通过名字来知道的,以免混淆变量名。2020/7/22,8,4.2.4。方法的定义包括两个部分:方法声明和方法体。一般格式为:方法体内容的方法声明部分1方法声明方法声明包括方法名称和方法返回类型,如:浮点区域()注意:方法返回类型、方法参数、方法名称2方法体一对大括号、 以及它们之间的内容称为方法体。方法体的内容包括局部变量和Java语句的声明。2020/7/22,9,4.2.5方法重载,这意味着一个类中的多个方法可以具有相同的名称
5、,但是这些方法的参数必须不同,即参数的数量不同或者参数的类型不同。2020/7/22,10,4.2.6,构造方法是一种特殊的方法,它的名称必须与其类的名称完全相同,并且它没有类型,并且构造方法也可以重载。2020/7/22,11,4.2.7类方法和实例方法。声明方法时,在方法类型之前,实例方法不会被关键字static修改,而类方法(静态方法)会被static修改。2020/7/22,12,4.2.8。一些值得注意的问题如下:1 .对成员变量的操作只能放在方法中,而方法可以对方法体中声明的成员变量和局部变量进行操作。应该注意,实例方法可以对类变量和实例变量进行操作,而类方法只能对类变量进行操作。
6、类中的方法可以相互调用,实例方法可以调用类中的其他方法;类中的类方法只能调用该类的类方法,不能调用实例方法。2020/7/22,13,4.3对象4.3.1创建对象,1对象声明人张平;2.为声明的对象分配内存张平=新用户();示例4-1,示例4-2: 3对象的内存模型(1)声明对象时的内存模型(2)将内存分配给对象后的内存模型(4)创建多个不同的对象,使用2020年7月22日、14日、4.3.2的对象;1使用操作符操作您自己的变量(对象的属性)。”;2)使用运算符“.”2020/7/22,15,4.3.3使用类创建对象时,类中的成员变量正在分配内存空间,内存空间称为对象的实体或变量,引用存储在对
7、象中。如果一个类创建的两个对象具有相同的引用,则它们具有完全相同的实体。2020/7/22,16,4.4参数传递值4.4.1基本数据类型的参数传递值。对于基本数据类型的参数,传递给该参数的值的级别不能高于该参数的级别。示例4-4,2020/7/22,17,4.4.2,当参数是引用类型时,“传递值”是指存储在变量中的“引用”,而不是变量引用的实体。示例4-5,2020/7/22,18,4.4.3可变参数意味着在声明一个方法时,参数列表中从一个项目到最后一个项目的参数的名称和数量没有给出,但是这些参数的类型必须相同。可变参数使用 来表示多个参数,这些参数必须是同一类型的,最后一个参数必须是参数列表
8、中的最后一个参数。例如:公共void f(int.x),4-6,2020/7/22,19,4.4.4,有理数的类封装,面向对象编程的核心思想之一是将数据和对数据的操作封装在一起。1有理(有理数)类2使用有理数对象进行运算。Rational.javamainclass.java,2020/7/22,20,4.5是一组物体的组合。一个类可以将对象作为自己的成员变量。如果用这样的类来创建对象,对象中就会有其他对象,也就是说,对象把其他对象作为自己的组成部分,或者对象是由几个对象组成的。例4-7,2020/7/22,21,4.6静态关键字,2020/7/22,22,4.6.1实例变量和类变量的区别,如
9、果类中有类变量,所有对象的类变量都分配到同一个内存中,改变一个对象的类变量会影响其他对象的类变量。也就是说,对象共享类变量。示例4-8,2020/7/22,23,4.6.2实例方法和类方法之间的区别在于,当用类创建对象时,类中的实例方法被分配了一个入口地址,因此实例方法可以被类创建的任何对象调用和执行。对于类中的类方法,当类被加载到内存中时,会分配相应的入口地址。示例4-9,2020/7/22,24,4.7这个关键字,这是Java中的一个关键字,代表一个对象。这可以出现在实例方法和构造函数方法中,但不能出现在类方法中。2020/7/22,25,4.7.1在构造函数中使用它。当此关键字出现在类的
10、构造函数中时,它表示由此构造函数创建的对象。示例4-10,2020/7/22,26,4.7.2在实例方法中使用此方法。当关键字this出现在实例方法中时,它表示调用该方法的当前对象。当实例成员变量出现在实例方法中时,默认格式是:this。成员变量。当静态成员变量出现在实例方法中时,默认格式是类名。成员变量。2020/7/22,27,4.8。包是一种用Java语言有效管理类的机制。包名的目的是有效区分同名的类。2020/7/22,28,4.8.1 package语句,该语句由关键字package声明。Package语句作为Java源文件的第一条语句,为源文件中声明的类指定包名。包语句的一般格式是
11、:包包名;2020/7/22,29,4.8.2带有包名的类的存储目录。如果程序使用包语句,例如:包汤姆.贾菲;那么存储文件的目录结构必须包含以下结构tomjiafei,如c :1000 tomja Fei,从源文件编译的类的字节码文件应该保存在目录c :1000 tomja Fei中(源文件可以任意存储)。2020/7/22/30/4.8/3。如果主类的包名是tom.jiafei,那么主类的字节码必须存储在tomjiefei目录中。在运行时,主类必须运行在tomjiefei的上层目录(即tom的父目录)中。假设tomjiefei的上部目录是1000,它必须以以下格式运行:c :1000 jav
12、atom . jiafi . main类名注意:main类名是“包名”。主类名”示例4-11,2020/7/22,31,4.9导入语句,一个类可能需要另一个类声明的对象。如果一个类要使用的类不在同一个包中,请使用导入语句来完成任务。2020/7/22,32,4.9.1。如果用户需要类库中的类,他们必须使用导入语句,如:导入java。在示例4-12,2020/7/22,33,4.9.2中,引入了自定义包中的类,用户程序可以使用tom.jiafei包中的类,即非类库中具有包名的类,也可以使用导入语句,如:import Tom . jiafi . *;示例4-13、4-14、2020/7/22、34
13、和4.9.3使用没有包名的类。如果一个类想在一个未命名的包中使用一个类,它只需要将没有包名的类的字节码保存在与当前类相同的目录中。示例4-15,2020/7/22,35,4.9.4避免类名混淆,1区分没有包名的类和有包名的类。如果你想同时使用甲类包和甲类包,你不能省略包名,例如:a1=新甲();新汤姆加菲。2用包名区分类如果一个源文件在两个包中引入了一个同名的类,在使用这个类时不允许省略包名,例如:Tom。一只鸟;一只山羊=新的。a();2020/7/22、36、4.10,访问限制的修饰符是私有的、受保护的和公共的,它们是Java的关键字,用于修改成员变量或方法。2020/7/22,37,4.
14、10.1私有变量和私有方法。由关键字private修改的成员变量和方法称为私有变量和私有方法。对于私有成员变量或方法,只有当在该类中创建了该类的对象时,该对象才能在该类中访问它自己的私有成员变量和私有方法。示例4-16、4-17、2020/7/22、38、4.10.2共享变量和共享方法。成员变量和公共修改的方法称为共享变量和共享方法。在我们用Tom在任何类中创建一个对象之后,该对象可以访问它自己的公共变量和类中的公共方法(您也可以通过类名来操作成员变量和方法)。2020/7/22,39,4.10.3友好变量和友好方法。当用另一个类中的类Tom创建一个对象时,如果这个类与Tom类在同一个包中,则
15、该对象可以访问它自己的友好变量和友好方法。在与Tom同一个包中的任何类中,您也可以通过Tom类的类名来访问Tom类的类友好成员变量和类友好方法。2020/7/22,40,4.10.4受保护的成员变量和方法。用受保护的修改的成员变量和方法称为受保护的成员变量和受保护的方法。2020/7/22,41,4.10.5公共课和友好课。当声明一个类时,如果关键字class前面有关键字public,那么这个类就是一个公共类。您可以使用公共类在任何其他类中创建对象。如果一个类没有用公共修饰,这样的类称为友好类。当在另一个类中创建带有友好类的对象时,请确保它们在同一个包中。2020/7/22,42,4.11。J
16、ava的基本数据类型包括:字节、整数、短、长、浮点、双精度、字符。Java提供与基本数据类型相关的类,并封装基本数据类型。这些类是:字节、整数、短、长、浮点、双精度和字符类。这些类在java.lang包中。2020/7/22,43,4.11.1 Double和Float类,实现了Double和Float基本数据的类封装。双精度类的构造方法:双精度浮点数类的构造方法:双精度对象可以通过调用双精度值()方法返回对象中包含的双精度数据。浮点对象调用浮点值()方法返回对象中包含的浮点数据。2020/7/22,44,4.11.2 Byte,Short,Integer,Long类,上述类由字节(Byte num)Short(Short num)Integer(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年低压电工操作证理论考试练习题及答案
- 服装加工厂裁剪设备安全防护方案
- 梅尼埃病限盐饮水量化管理共识
- 2026学年广东省河源市五年级语文期末深度自测快速提分题(详细参考解析)详细答案和解析
- 2026年畜牧兽医考试题库及答案
- OC岗位综合考核试题及详细答案
- 2027届江苏省句容市数学八上期末联考模拟试题含解析
- 职业健康促进企业创建实施方案
- 儿童共同性斜视随访观察指南(2026版)
- 液压管路预制酸洗操作工规程
- 2026年大学《自动控制原理》试题及答案
- 2026年注册安全工程师建筑实务真题及答案解析
- 2026年计算机二级考试试卷(含答案)专项训练
- 2026年全国保安员资格考试题库(附参考答案)
- 2026年4月自考02324离散数学试题及答案含评分参考
- (高清版)DZT 0004-2015 重力调查技术规范(150 000)
- 变应性支气管肺曲霉病诊治专家-共识(2022年修订版)解读
- 第2章 CR400AF动车组司机室设备操作《复兴号动车组司机操作及整备》教学课件
- 高二上学期第一次月考总结班会课件
- 金融实习证明
- GB/T 2000-2000焦化固体类产品取样方法
评论
0/150
提交评论