- 1、本文档共52页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[所有分类]Java面向对象特性
问题:在JAVA中怎么定义类? 我们的任务 类有状态和方法,例如类:“公民”civics有身份证编号id,姓名name,性别gender等属性,有告知姓名tellName,出示身份证showID等方法。那么,在JAVA中我们怎样定义“公民”这个类呢? 所需知识:类的基本结构 类有两种基本成分:(成员)变量和(成员)方法 变量可以是基本类型的变量或数组,或一个类的实例 方法处理该类的变量中的数据 所需知识:类的基本结构 JAVA中类定义的基本语法是 [修饰符] class 类名 { [成员变量声明] [构造方法声明] [成员方法声明] } 所需知识:类的声明 [Public][abstract|final] class ClassName public指明任意类都可以访问这个类 abstract指明这个类是抽象类 final指明这个类不能被继承 一个类的定义实例 现在,请你解决我们前面提出的问题 对象生命周期 ? 创建对象 ? 使用对象 ? 清除不用的对象 创建对象 对象实例化过程 对象的回收 新问题:怎样在同一个类中定义几个功能类似但参数不同的方法。 任务:如果在实例化一个公民对象时已知他的身份证编号,那么在实例化时就给相应的变量赋值。如果已知他的身份证编号、姓名、性别,那么在实例化时就给所有相应的变量赋值。 现在,让我们来解决前面的问题 试一试 用Civics类来定义Student类,增添一些属性和方法 问题: 学生类继承了公民类,但公民类的work方法是干活,学生类的work方法是学习。怎么改变学生类的work方法? 现在,解决前面的问题! 强制类型转换的规则 对象变量转换的目标类型,一定要是 当前对象类型的的子类。编译器会检查。 Employee e=new Manager(); Manager m=(Manager)e; 强制类型变换在运行时也会检查,如果不符将抛出异常 Object 及其子类 Object定义了所有对象都需要的状态和行为。如对象之间的比较、将对象转换为字符串、等待某个条件变量、当某条件变量改变时通知相关对象 以及返回对象的类。 Object 及其子类 ?在Object子类中可以重写的方法: clone equals finalize toString :返回对象的字符串表示,表达的内容因具体的对象而异 ?在Object子类中不能重写的方法: getClass notify notifyAll wait Object的clone方法 ? aCloneableObject.clone(); //从已有的对象创建新的对象 ?注意: aCloneableObject 必须实现了Cloneable接口 Object.clone()是shallow copy 而不是 deep copy 通过重写Object的clone方法实现深拷贝的示例 public class Stack implements Cloneable { private Vector items; // code for Stacks methods and constructor not shown protected Object clone() { try { Stack s = (Stack)super.clone(); // clone the stack s.items = (Vector)items.clone(); // clone the vector return s; // return the clone } catch (CloneNotSupportedException e) { } } } 如何比较两个字符串是否相等 String s1=“sss”,s2=“sss”; If (s1==s2) System.out.println(“s1==s2”); If s1.equals(s2) System.out.println(“s1 equals s2”); 验证 Object 的toString方法 返回对象的字符串表示,表达的内容因具体的对象而异 。 例: System.out.println(e.toString()); 对于Integer的对象toString将得到它所包含的整型数的字符表示。 ? Java中用 extends 关键字定义子类。 知识:extends 关键字 public class Employee { String name ; Date hireDate ; Date dateofBirth ; String jobTitle ;
文档评论(0)