Java 第5章 类和对象-1
计算机科学与技术,Java
第三篇
Java语言的面向对象机制 Java语言的面向对象机制 第五章 类和对象
计算机科学与技术,Java
第五章 类和对象 5.1 简单的类 5.2 域 5.3 访问控制 5.4 创建对象 5.5 构造与初始化 5.6 方法 5.7 this引用 this引用 5.8 方法的名复用 5.9 main方法 main方法 5.10 native方法 native方法 5.11 小结
计算机科学与技术,Java
5.1 简单的类
类:汇集一套数据并定义所有访问、使用和修 汇集一套数据 定义所有访问、 数据并 所有访问 改这些数据的方法。 改这些数据的方法。 基于Java的面向对象设计需严格区别“做什么” 基于Java的面向对象设计需严格区别 做什么” 的面向对象设计需严格区别“ 怎么做” 与“怎么做”,方法的约定规定了当调用一个 对象的方法时将会发生什么。 对象的方法时将会发生什么。做什么 设计者 方法的约定:方法的基调和语义。 方法的约定:方法的基调和语义。 怎么做 使用者
计算机科学与技术,Java
5.1 简单的类 类的基本成份:域(数据)和方法(处理数据的代码)。 类的基本成份: 数据)和方法(处理数据的代码)。 类的三种成员: 类的三种成员:– 域(field):与类及其对象相关联的数据变量,以保存类或对象的状态。 (field):与类及其对象相关联的数据变量,以保存类或对象的状态。 – 方法(method):包含类的可执行代码,定义了对象的行为。 方法(method):包含类的可执行代码,定义了对象的行为。 – 内嵌类(nested class)和内嵌接口(nested interface):在其他类或接口中说明的类或 内嵌类(nested class)和内嵌接口 和内嵌接口(nested interface): 接口。 接口。public class Body { public long idNum; public String nameFor; public Body orbits; public static long nextID = 0; } // 与天体相关的类 public class StopLight { int RedGreenYellow; 方法 changeLight( ){ 域 RedGreenYellow = ++ RedGreenYellow; } } //交通信号类 //交通信号类
上述类的说明创建了一个类型名,对该类型对象的引用可简单地说明如下: 上述类的说明创建了一个类型名,对该类型对象的引用可简单地说明如下:Body mercury; 仅说明了一个Body对象的引用,还没有创建一个对象 对象的引用, 仅说明了一个 对象的引用
此时mercury引用被初始化为null。在显式地创建对象之前, mercury引用 此时mercury引用被初始化为 引用被初始化为null。在显式地创建对象之前, mercury引用 的对象尚未真正存在Body mercury = new Body( ); mercury引用的对象存在了 引用的对象存在了
计算机科学与技术,Java
5.1 简单的类 类修饰符(指定类的特殊性质) 类修饰符(指定类的特殊性质) public 缺省 公共可访问的类 包内可访问的类
abstract 抽象类,不能创建对象 抽象类, final 不能有子类
strictfp 类中采
用严格浮点数格式执行浮点计算注意:每个源文件中最多只能有一个public类。因为Java要求 注意:每个源文件中最多只能有一个public类 因为Java要求 含有public类的源文件名必须与该类名相同 类的源文件名必须与该类名相同。 含有public类的源文件名必须与该类名相同。
计算机科学与技术,Java
5.2 域 类中作为成员的变量。 类中作为成员的变量。 与C++不同,可对类中的域赋予初始值。 C++不同 可对类中的域赋予初始值。 不同, 对每个对象各自的域赋值,意味着每个对象都有自己独 对每个对象各自的域赋值, 特的状态。除非静态域, 特的状态。除非静态域,否则不同对象间的域不会互相 影响。 影响。public class Body { public long idNum; // public String nameFor; // public Body orbits; // public static long nextID = 0; // }
唯一地标识一个天体 该天体的名字 该天体围绕着转的其它天体 后继天体的标识
计算机科学与技术,Java
5.2 域--初始化 --初始化 初始化可采用(类型必须正确) 初始化可采用(类型必须正确)– – – – 常量 域 不能引发检测性异常---尚未建立捕捉异常的代码 方法调用 // 不能引发检测性异常---尚未建立捕捉异常的代码 上述三个的组合构成的表达式
double zero = 0.0; //常量 常量 double sum = 4.5+3.7; //常量表达式 常量表达式 double zeroCopy = zero; //域 域 double rootTwo = Math.sqrt(2); //方法调用 方法调用 double someVal = sum + 2 * Math.sqrt(rootTwo); //组合 组合
计算机科学与技术,Java
5.2 域--静态域 --静态域 静态域(类变量、类域):类的所有对象共享的域。 静态域(类变量、类域):类的所有对象共享的域。 ):类的所有对象共享的域 由该类创建的所有对象共享这个域的单个值。 由该类创建的所有对象共享这个域的单个值。 类的静态域在加载类时初始化。 类的静态域在加载类时初始化。 加载类时初始化public class Body { public long idNum; // public String nameFor; // public Body orbits; // public static long nextID = 0; // } 唯一地标识一个天体 该天体的名字 该天体围绕着转的其它天体 静态域 后继天体的标识
访问: 访问:– 类内部:直接用域名。 // nextID 类内部:直接用域名。 – 类外部:通过类名和域名 或 类的对象引用和域名 类外部: Body.nextID mercury.nextID 即使mercury引用为 引用为null,第二种访问方式也是正确的。 即使mercury引用为null,第二种访问方式也是正确的。
计算机科学与技术,Java
5.2 域--final域 -- 域 final域:被初始化后就不能再改变。 final域 被初始化后就不能再改变。 final域的初始化: final域的初始化: 域的初始化– 定义时初始化 – 类初始化后(static final) 类初始化后( final) – 对象创建完成后(没有static的f
inal) 对象创建完成后(没有static的final)
计算机科学与技术,Java
5.2 域-举例说明 类中有两种类型的变量:直接在类中定义的变量和 类中有两种类型的变量:直接在类中定义的变量和 在具体方法的中定义的变量。 在具体方法的中定义的变量。 – 直接在类中定义的变量:类中在任何方法之外声 直接在类中定义的变量: 明的变量,被称为类的域, 明的变量,被称为类的域,域可以被类的所有方 法访问。 法访问。 – 在具体方法的中定义的变量:在方法中声明的变 在具体方法的中定义的变量: 是该方法的局部变量, 量,是该方法的局部变量,局部变量只能在方法 内访问。因为方法的变量与方法的生命周期相同, 内访问。因为方法的变量与方法的生命周期相同, 所以它们不能够被其它的类访问, 所以它们不能够被其它的类访问,用户也不能对 方法变量使用任何访问修饰符。 方法变量使用任何访问修饰符。 访问变量的能力取决于两个因素:创建变量时使用 访问变量的能力取决于两个因素 创建变量 的能力取决于两个因素: 变量时使用 修饰符和变量声明在类中的位置。 在类中的位置 的修饰符和变量声明在类中的位置。
计算机科学与技术,Java
5.2 域-举例说明class CashRegister{ public int total; int[] sales_value; Outputlog log; void printReceipt(int total_sale){ Tape.println("Total Sale = $ " + total-sale); Tape.prinltn("Thank you for shopping with us."); } …… 此处隐藏:5368字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




