Object类

Object类的基本定义

Object类是所有类的父类,也就是说任何一个类在定义时如果没有明确地继承一个父类,那它就是Object类的子类。

取得对象信息:toString()

在Object类中的toString()方法设计时,由于要考虑其可以满足所有对象的输出信息,所以默认返回的是对象的编码。

class Book1{ //此类为Object子类private String title;private double price;public Book1(String title,double price){this.title=title;this.price=price;}public String toString(){   //代替getInfo(),并且toString()可以自动调用return "书名:"+this.title+",价格:"+this.price;}//setter、getter、无参结构略
}
public class Test1_1_4_5 {public static void main(String args[]){Book1 b=new Book1("Java开发",79.9);       //实例化对象System.out.println(b);       //直接输出对象,默认调用toString()}
}

对象比较:equals()

例:实现对象比较

class Book14{private String title;private double price;public Book14(String title,double price){this.title=title;this.price=price;}public boolean equals(Object obj){if (this==obj){ //地址相同return true;}if (obj==null){    //对象内容为nullreturn false;}if (!(obj instanceof Book14)){ //不是本类实例return false;}Book14 book=(Book14)obj;if (this.title.equals(book.title)&&this.price==book.price){return true;}return false;}public String toString(){    //替代了getInfo(),并且toString()可以自动调用return "书名:"+this.title+",价格:"+this.price;}//setter、getter、无参结构略
}
public class Test1_1_4_6 {public static void main(String args[]){Book14 b1=new Book14("Java开发",79.9);    //实例化对象Book14 b2=new Book14("Java开发",79.9);System.out.println(b1.equals(b2));    //对象比较}
}
//结果
//true

Object类与引用数据类型

例:接收数组数据

public class Test1_1_4_7 {public static void main(String args[]){Object obj=new int[]{1,2,3};   //向上转型System.out.println(obj);  //数组编码:[I@10f87f48if (obj instanceof int[]){    //谁是否int数组int data[]=(int[])obj;   //向下转型for (int x=0;x<data.length;x++){System.out.print(data[x]+"、");}}}
}
//结果
//[I@10f87f48
//1、2、3、

关于数组对象的编码问题:
只要是数组对象的直接输出,第一位都是"[",第二位是数组类型的简短标记,例如:int类型数组是I,double型数组是D,而后就是数组对象的编码。

例:Object类接受接口对象

interface A{public void fun();
}
class B extends Object implements A{    //所有类一定继承Object类,所以此处只是强调说明public void fun(){System.out.println("666");}public String toString(){return "2333";}
}
public class Test1_1_4_8 {public static void main(String args[]){A a=new B();  //实例化接口对象Object obj=a; //接受接口对象A t=(A)obj;    //向下转型t.fun();  //直接调用出口方法System.out.println(t);    //直接调用toString输出}
}
//结果
//666
//2333

Java学习总结:15相关推荐

  1. Java学习lesson 15

    *Set集合 一个包含重复的元素collection,并且最多包含一个null元素,此类实现Set接口,有哈希表支持,Java中的预定义类型如String.Integer都可以在集合内使用:但对于自己 ...

  2. JAVA学习笔记 15 - 函数式接口、Lambda表达式和方法引用

    本文是Java基础课程的第十五课.主要介绍在JDK8中,Java引入的部分新特性,包括函数式接口.Lambda表达式和方法引用.这些新特性使得Java能够在按照面向对象思想进行开发的基础上,融合函数式 ...

  3. java学习(15):巩固练习

    //任务 1 //编写控制台java程序,使用Scanner 对象相关方法从 //控制台接收用户输入如下数据并使用相关的局部变量接收,在控制台打印输出. //老师的姓名:老师的性别:老师的工资:老师的 ...

  4. Java学习笔记15. 形式参数与实际参数

    Java中的方法可以分为:有参方法和无参方法.使用带参数的方法时,方法的参数可以是一个到多个. 参数可以分为形式参数和实际参数.在实际调用方法的时候使用的参数就是实际参数,而在被调用时才临时分配内存的 ...

  5. Java学习笔记15

    Object类是所有类.数组.枚举类的父类,是类层次结构的根类.每个类都使用Object作为超类.所有对象(包括 数组)都实现这个类的方法. Object类实现了以下方法: 我们来看看源码中toStr ...

  6. Java学习(三)JSP学习1

    一.  理解JSP技术 JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 是由Sun Microsystems公司倡导.许多公司参与 ...

  7. Java学习---RMI 技术分析[Hessian]

    一.什么是Hessian Hessian 是一个基于 binary-RPC 实现的远程通讯 library.使用二进制传输数据.Hessian通常通过Web应用来提供服务,通过接口暴露.Servlet ...

  8. Java必备:java入门、java学习

    2019独角兽企业重金招聘Python工程师标准>>> 版权声明:本文为北京尚学堂原创文章,未经允许不得转载. 1.Java入门 1-1.Java具有那些适合在Internet环境中 ...

  9. Java学习笔记(十)--控制台输入输出

    输入输出 一.控制台输入 在程序运行中要获取用户的输入数据来控制程序,我们要使用到 java.util 包中的 Scanner 类.当然 Java 中还可以使用其他的输入方式,但这里主要讲解 Scan ...

  10. java学习笔记十三

    11. 凡是继承了FilterOutputStream或FilterInputStream的类都是过滤流,也就是说他们不能直接跟目标(键盘,文件,网络等,节点流可以)数据打交道,只能包装 Intput ...

最新文章

  1. Charles的功能操作
  2. 5.16 Stacks and Queues
  3. 怎么导出费用科目凭证明细_公司做账:小规模公司怎么做账?
  4. Android网络图片加载缓存处理库的使用---第三方库学习笔记(五)
  5. 《it创业疯魔史》读后有感
  6. npm 有用的一些全局包
  7. 所谓伊人,在水一方--------------折射定律
  8. Servlet规范总结
  9. Windows7安装PADS2007详细步骤____亲自实验总结
  10. HTTP协议抓包分析
  11. vue移动端小说阅读器vue全家桶项目,已部署到服务器可访问预览
  12. 深大计算机与软件学院学生,深圳大学
  13. java在360运行不了_电脑360安全卫士打不开如何解决_360安全卫士无法打开的处理方法...
  14. 清明祭曾祖@20130402
  15. 模具设计经典案例:汽车门板下本体模具的设计
  16. 当你觉得焦虑,烦躁的时候怎么办?
  17. 在Excel表格中插入函数,利用公式进行计算
  18. C基础学习笔记——01-C基础第02天(用户权限、VI操作、Linux服务器搭建)
  19. 深入理解SD卡:协议
  20. 十六进制数据的CRC16校验码自写软件

热门文章

  1. C++中的string::compare的使用
  2. 在CentOS 6.3 64bit下yum安装MySQL后重置root密码的方法
  3. UE4风格化场景设计入门指南 Stylized Station – The Environment Artist’s Survival Kit
  4. 用Azure VM + Azure Database for MySQL搭建Web服务
  5. hive lock命令的使用
  6. MySQL 字段类型知识
  7. 67)vector的begin() end() 和 front() back()的区别 rbegin() rend()
  8. C#学习-EF在三层中使用
  9. MSSQL2005外网IP的1433端口开启方法
  10. liunx查看python的site-packages路径