一、概述

Object时java中顶级父类,也是唯一没有父类的类;它是整个java中最基本的类,在java中所有的类都默认继承了Object。

二、重要方法

1、clone方法

克隆出一个新的对象。

使用clone方法时的注意点:

  1. 在使用这个方法的时候,需要抛出一个异常;
  2. 需要对应的类实现Cloneable接口;
  3. clone使用protected修饰,需要注意其使用范围;只能在本类、继承子类和同包类中使用;由于Object和子类不同包,相当于只能在子类中使用了。

2、finalize方法

通知GC进行垃圾对象的回收,但是GC不一定会执行,通知完成之后GC会进行内存的扫描。

3、hashCode方法

计算对象的哈希码。哈希码时根据哈希散列算法计算出来的。一般人为的认为每个对象的哈希码是唯一的。

4、toString方法

将对象转化为字符串来进行展示。如果直接打印一个对象,那么会默认调用对象的toString方法。

5、getClass方法

获取对象的实际类型而不是声明类型。

6、equals方法

判断两个对象是否相等。如果不重写,那么默认判断两个对象的地址是否一致。实际开发中旺旺需要重写。重写步骤如下:

  1. 判断地址是否一致;
  2. 判断参数是否为空;
  3. 判断类型是否一致;
  4. 判断属性是否一致:如果是基本类型,可以直接比较;如果是引用类型则需要多个判断。

示例如下:

class User {
public int System = ;
private String userName;
private String password;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
} @Override
public boolean equals(Object obj) {
//判断地址是否一致
if(this == obj) {
return true;
}
//判断是否为null
if(obj == null) {
return false;
}
//判断类型是否一致
if(this.getClass() != obj.getClass())
return false;
//判断对象的属性
User us = (User)obj;
//判断对象的名称
if(this.userName == null) {
if(us.userName != null) {
return false;
}
} else if(!this.userName.equals(us.userName)) {
return false;
}
//判断对象的密码
if(this.password == null) {
if(us.password != null) {
return false;
}
} else if(!this.password.equals(us.password)) {
return false;
} return true;
}
}
public class ObjectExer {
public static void main(String[] args) {
User us = new User();
us.setUserName("张三");
us.setPassword("");
User us1 = new User();
us1.setUserName("张三");
us1.setPassword("");
}
}

类的始祖Object的更多相关文章

  1. 把一个类(或者Object)转换成字典

    直接上代码:把一个类转换成object,然后在转换成字典 internal static IDictionary<string, string> GetDictionary(this ob ...

  2. python定义类()中写object和不写的区别

    这里需要说明一下: python3中,类定义默认继承object,所以写不写没有区别 但在python2中,并不是这样 所以此内容是针对python2的,当然python3默认继承,不代表我们就傻乎乎 ...

  3. Python中新式类 经典类的区别(即类是否继承object)

    首先什么是新式类 经典类呢: #新式类是指继承object的类 class A(obect): ........... #经典类是指没有继承object的类 class A: ........... ...

  4. Java类的设计----Object 类

    Object类 Object类是所有Java类的根父类如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类 public class Person { ... } 等价于: ...

  5. Object类 任何类都是object类的子类 用object对象接收数组 object类的向上向下转型

    任何类都是object类的子类 用object对象接收数组 object类的向上向下转型

  6. Java类的根Object

    一.Object类介绍 Object全名java.lang.Object,java.lang包在使用的时候无需显示导入,编译时由编译器自动导入.Object类是类层次结构的根,Java中所有的类从根本 ...

  7. 最终父类【根类】:Object类&Objects类

    一.java.lang.Object类 1.Object类介绍 Object类是所有类的父类.一个类都会直接或间接继承自该类: ​ 该类中提供了一些非常常用的方法! 2.toString()方法 A: ...

  8. 13_Python的面向对象编程-类class,对象object,实例instance

    1.面向对象概述 1.类是用来描述对象的工具,把拥有相同属性和行为的对象分为一组     2.对象是由类实例化出来的一个具体的对象         属性: 对象拥有的名词,用变量表示         ...

  9. 关于匿名类无法转换为object

    缘由,不能在Razor中使用匿名类, 先事先封装了一个方法,用于Razor给cshtml模板返回页面. 在ashx一般处理程序中,是这样调用的 匿名类的格式如下:(只看格式,不看具体内容) 调用这样 ...

随机推荐

  1. 阿里云CentOS安装图形化界面

    阿里云提供的linux系统是不含图形化界面的,如果您需要安装图形化界面, 请您参考为Linux实例安装图形化桌面环境和在CentOS系统中自动安装并运行VNC Server安装部署一下. 为Linux ...

  2. CodeBlocks_OpenGL配置

    CodeBlocks版本:13.12 下载OpenGL配置文件 1.glut.dll glut32.dll放入系统盘Windows\System32文件夹 2.glut.h放入CodeBlocks安装 ...

  3. Android反编译与防止反编译

    1.Android反编译      1)下载两个工具  dex2jar,jar2java,相关阅读下载见:http://www.linuxidc.com/Linux/2011-02/32775.htm ...

  4. 「PA2014」Kuglarz

    传送门 memset0好评 解题思路 其实这是一道图论题 不难发现,如果知道了 \(\sum1...i\) 和 \(\sum1...j\) 的奇偶性,那么就可以得知 \(\sum i+1...j\) ...

  5. Java中很少用的CopyOnWriteArrayList

    类注释 /** * A thread-safe variant of {@link java.util.ArrayList} in which all mutative * operations ({ ...

  6. Ternsorflow 学习:004-MNIST入门 构建模型

    Softmax回归介绍 我们知道MNIST的每一张图片都表示一个数字,从0到9.我们希望得到给定图片代表每个数字的概率.比如说,我们的模型可能推测一张包含9的图片代表数字9的概率是80%但是判断它是8 ...

  7. POJ 3233:Matrix Power Series 矩阵快速幂 乘积

    Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 18450   Accepted:  ...

  8. 基于vue-router的移动端网页的路由管理

    本篇代码示例:github 前提:不关注移动端浏览器的前进事件 涵盖功能: 1,管理路由的历史记录 2,切页动画的实现 3,处理流程类页面的回退事件 描述:    流程类页面的回退事件的解释: 以注册 ...

  9. Vulkan SDK Demo 之一 熟悉

    DiligentEngine的API是D3d11和D3D12风格的,vulkan也被封装成了这种风格的API. 在了解Diligent Engine是如何对vulkan进行封装之前,我准备先学习下Vu ...

  10. 018、Java中除法的是用,解决除法计算精度问题

    01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...