文档详情

第6章 面向对象的思想概述.ppt

发布:2016-01-30约1.36万字共122页下载文档
文本预览下载声明
This与构造方法的重载 假如在一个构造方法中使用了this语句,那么它必须作为构造方法的第一条 只能在一个构造方法中用this 语句来调用类的其它构造方法 ,不能在实例中用this语句来调用类的其它构造方法 this简化构造函数的调用,一个类所有的实例(对象)调用的成员方法在内存中只有一份拷贝,尽管在内存中有多个对象,而数据成员在类的每个对象所在内存中都存在这一份拷贝。this变量允许相同的实例方法为不同的对象工作。每当调用一个实例方法时,this变量将被设置成引用该实例方法的特定的类对象。方法的代码接着会与this所代表的对象的特定数据建立关联。 对象做方法的参数 简单数据类型和对象类型的复制: 对于简单类型变量,一个变量的真实值赋给另一个变量。 对于对象类型变量,它仅仅是将一个对象变量的引用值赋给另一个对象变量。 示例:Test1_4.8.java 总结 传递简单类型的变量值与传递对象有重要区别: 传递简单类型变量就是将其值传递给形参。改变方法内部的参数不会影响方法外部的变量值。 传递对象意味着将对象的引用传递给形参。方法体内局部对象的任何变化都会影响做为参数传递的原对象。 练习: 分析以下程序的运行结果 Ref.java 变量的作用域 属性: 类的作用域,有默认值 局部变量(变量): 块的作用域,没有默认值 示例:Scope_4.9.java 属性隐藏 如果属性名与局部变量名相同,则在局部变量的作用域内,属性被隐藏。 示例:Scope_4.10.java 知识点总结 属性是定义在类中所有方法外的变量;而在类内且是方法内定义的变量是局部变量。 方法可直接访问同一个类中的属性,当属性与方法内的局部变量重名时,访问的是局部变量,属性将被隐藏。 知识点总结 局部变量要先声明再使用,并且使用前必须给定初值 属性不管在何处声明,它的作用范围是整个类 局部变量的使用范围是从声明它的地方开始,到当前代码块尾。 总结 方法的重载 关键字this 理解对象的引用 * 汽车颜色color、汽车型号carType、汽车排气量engine、汽车轮胎型号tireType 汽车换挡shiftGear 汽车刹车brake 输出汽车配置信息equipment 本节课内容 包 访问控制修饰符 static修饰符 Java中允许将多个类收集在一起成为一组,称为包(package)。 声明包的方法(将类放入包中) package 包名称; 例如:package ch04; 示例:A.java 定义包(package) 注意,package必须写在程序的第一条 包(package) 为什么使用包? 主要原因是防止两位程序员取了相同的类别名称,包嵌套的层次可以用来保证类名的唯一性,避免同名类冲突。 包与文件目录 Java要求包名与文件系统的目录结构一一对应。一个包实际上是包含类字节码的目录 package cn.edu.neusoft. graphics ; class Circle { ….. } Circle.java ? Circle.class cn edu neusoft graphics Circle.class 使用包中的类 使用其他包中的public类 常用是:关键字 import 包名.类名; 例:import java.util.Scanner; 示例:AA.java AATest.java 注意:只能引入其他包中的public类 注意 也可以引入整个包 例如: import java.util.*; 注意:* 表示引入一个单独包下的所有类,而不是引入所有以java.util为前缀的所有包。 包 注意: package必须是第一条语句 只能使用其他包中的public类 如果一个程序中使用两个包中的类同名,在使用类名前加上包名前缀 例如: java.util和java.sql包中都有一个Date类,当程序如下所写时 import java.util.*; import java.sql.*; 使用Date时,如定义Date tody;是错误的 这时需在类前加完整的包名, 如: java.util.Date deadline = new java.util.Date(10000) java.sql.Date today = new java. sql.Date(10000) 所以,当类放在有名包中时,类的全称应该是包名.类名. 练习 定义一个类A,放到pack1包中; 定义一个类B,放到pack2包中; 在类B中定义main方法,在main方法中创建类A的对象。 观察:两个类的字节码文件的位置 通过前面的练习,看下面的注意(了解) 当源程序没有指定包的时候,默认这样
显示全部
相似文档