一、概述

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. Ubuntu 安装MySQL并打开远程连接

    首先使用su命令切换到root账户 在用apt-get install mysql-server命令获取到MySQL的服务 等待下载安装,按照提示输入MySQL的密码 安装完成后对mysqld.cnf ...

  2. 伪类:after,:before的用法

    :after和:before是css3中的伪类元素.用法是像元素的前或者后插入元素.以after为例: li:after{ content: ''; color: #ff0000; } 意思是向li元 ...

  3. input文件类型上传,或者作为参数拼接的时候注意的问题!

    1.ajax请求参数如果为文本类型,直接拼接即可.如果为file类型就需要先获取文件信息 2.获取文件信息: HTML代码: <div class="form-group"& ...

  4. body滚动时左侧菜单固定

    var top = $(".nav-frame").offset().top $(document).scroll(function(){ if($(this).scrollTop ...

  5. 大数据萌新的Python学习之路(三)

    笔记内容:  一.集合及其运算 在之列表中我们可以存储数据,并且对数据进行各种各样的操作.但是如果我们想要对数据进行去重时是十分麻烦的,需要使用循环,要建立新的列表,还要 进行对比,十分的麻烦,还消耗 ...

  6. 二十四 Redis消息订阅&事务&持久化

    Redis数据类型: Redis控制5种数据类型:String,list,hash,set,sorted-set 添加数据,删除数据,获取数据,查看有多少个元素,判断元素是否存在 key通用操作 JR ...

  7. 吴裕雄--天生自然JAVA数据库编程:ResultSet接口

    import java.sql.Connection ; import java.sql.DriverManager ; import java.sql.SQLException ; import j ...

  8. USACO[19-20]Dec银组题解

    1,MooBuzz 这题其实是道数学题. 我们先找找符合要求的数:1,2,4,7,8,11,13,14…… 我们发现再往后找都是这8个数中的一个加15k如:16……19……29…… 找规律发现k=n/ ...

  9. BubbleSort

    看见了一些乱乱的东西,就想着整理一下,基础的冒泡排序 //BubbleSort #include<iostream> using namespace std; void BubbleSor ...

  10. 数学软件实训2-MATLAB程序综合设计及应用

    数学软件实训任务二 一 题目:MATLAB程序综合设计及应用 二 目的:熟练掌握MATLAB程序设计的基本方法,会根据MATLAB程序设计的 三 要求: 1 熟练掌握控制流的基本语法结构. 2 会熟练 ...