29.object类的基本概念_第1页
29.object类的基本概念_第2页
29.object类的基本概念_第3页
29.object类的基本概念_第4页
29.object类的基本概念_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程名称:object 类的基本概念 2、知识点 2.1、上次 课程的主要知识点 1、继 承性:子 类 可以扩充父类的功能,可以将描述群体进一步缩小; 子类依靠 extends 关键字 可以继承一个父类, Java 存在有单继承局限,即:不允许多 重继承,但是允许多层继承; 子类继承的时候所有父类定义都会被继承下来,但是私有操作属于隐式继承,而非 私有操作属于显示继承( 可以直接 进行调用) ; 子类对象实例化前一定会默认调用父类中无参构造方法,为父类中的对象实例化, 如果此时父类中没有无参构造方法,那么必须利用”super()” 的形式进行调用; 2、覆写:子类定 义了与父类相同的方法或者属性的一种操作。 定义:子类定义与父类方法名称相同、参数类型及个数相同、返回值相同的 方法,在进行方法覆写时要求被覆写的方法不能拥有比父类更为严格的 访 问控制权限,因为强调过:方法就使用 public; 覆写直接与对象的多态性有关,根据实例化子类的不同,同一个方法执行 的结果不也不同; 2.2、本次 预计讲解的知识点 1、Object 类的主要作用; 2、Object 类中的常用方法; 3、具体内容( ) 虽然有对象的向上转型,可以解决参数的统一问题,但是面对 JAVA 开发之中如此众多的开 发类,所以现在就面临了这样的一个问题:参数类型怎么选择才能保存所有的类对象呢?为 此在 java 里面考虑到了此种情况提供有一个 objcet 类,此类定义如下: Public class Object 可以发现在整个 java 里面只有 Object 类在定义的时候没有定义父类,而其它的所有 类都是 Object 类的一个子类,也就是说在整个 java 类中,除了 Object 类之外,一切都存在有继承在 关系。 Public class Person Public class Person extends Object 理论上定义一个类的时候如果没有继承任何的父类,那么其将继承 Object 类。这样的直接 好处就是,所有类的对象都可以使用 Object 来进行接收。 范例:利用 Object 接收对象 class Person public class TestDemo public static void main(String args)/为了方便模拟调用 Object obj = new Person();/向上转型 利用 Object 可以实现最终的参数 类型的统一。 清楚了 Object 类的作用之后,下面要完善一些操作: 在 简单 Java 类的时候需要提供有一个 getInfo()的方法以返回对象信息。 在进行简单 Java 类对象比较的时候要准备有 一个 compare()方法进行比较。 那么从现在开始以上的两个方法需要换名,在 Object 里面定 义有以下两个匹配方法: 取得对象信息: public String toSring(); 对象的比较:public boolean equals(Object obj) 3.1、取得 对象信息 如果说现在直接输出一个对象,默认输出的是一个地址编码。 范例:观察默认的 toString() class Person public class TestDemo public static void main(String args)/为了方便模拟调用 Person p = new Person(); System.out.println(p);/Person1db9742 System.out.println(p.toString();/Person1db9742 通过此时的代码可以发现,在默认情况下如果要输出一个对象,都会执行 toString()方法,不 管是否显式调用此方法。于是 Object 类对于此方法就有一个自己的默 认实现,虽然不知道 每个对象输出时都需要哪些,但是至少知道每个对像输出时存在都会有一个地址编码,所 以默认输出的内容就是对象的编码信息。 如果用户现在不希望输出编码,而希望输出具体的内容,则可以进行方法的覆写。 范例:覆写 toString()方法 class Person private String name; private int age; public Person(String name,int age) = name; this.age =age; public String toString() return “姓名:“++“,年龄:“+this.age; public class TestDemo public static void main(String args)/为了方便模拟调用 Person p = new Person(“张 三“,30); System.out.println(p); 3.2、对 象比较:equals() 对象比较在之前曾经使用过 compare()方法进行表示,而且最为重要的是在之前实现对象比 较时比较的流程:地址、地址是否为空、属性是否相同。 范例:实现对象比较 class Person private String name; private int age; public Person(String name,int age) = name; this.age =age; public boolean equals(Object obj) if(this = obj)/地址相同 return true; if(obj = null)/没的比 return false; if(!(obj instanceof Person) return false;/两人对象没关系 Person per = (Person)obj; if(.equals() return false; public String toString() return “姓名:“++“,年龄:“+this.age; public class TestDemo public static void main(String args)/为了方便模拟调用 Person p1 = new Person(“张 三“,30); Person p2 = new Person(“张三“,30); System.out.println(p1.equals(“大猪“); 从以后开始,所编写对象比较操作,都以 Object 类的 equals()方法为主。 3.3、Object 类可以接收一切引用类型 Java 引用类型包含:数组、类、接口。 现在已经证明了,所有的类对象都可以使用 Object 进 行接收,可是还有数组和接口,他们也可以被 Object 接收。 范例:利用 Object 接收数组对 象 public class TestDemo public static void main(String args) Object obj = new int1,2,3;/利用 Object 接收整型数组,向上转型 if(obj instanceof int)/对象是否是 int 数组 int data = (int)obj;/向下转型 for(int x=0;xdata.length;x+) System.out.println(datax); 除了可以接收数组之外,接口也可以接收。 范例:辅助概念 interface A public void printA(); interface B public void printB(); class X implements A,B public void printA() System.out.println(“AAAAAAAAAAAAAAAAAAAAA“); public void printB() System.out.println(“BBBBBBBBBBBBBBBBBBBBBB“); public class TestDemo public static void main(String args) A a = new X();/向上转型 B b = (B)a; /虽然 A 与 B 没有关系,但是 X 是 B 的子类; b.printB(); 按照以上思路来解决 Object 接收接口对象的问题。 interface A public void printA(); class X extends Object implements A public void printA() System.out.println(“AAAAAAAAAAAAAAAAAAAAA“); public class TestDemo public static void main(String args) A a = new

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论