Java基础——Object类
一、概述:
Object是类层次结构的根,每个类都可以将Object作为超类。所有类都直接或者间接的继承该类
有一个构造方法 public Object()
面向对象中子类的构造方法默认访问的是父类的无参构造方法的原因就是因为最顶级的父类只有无参构造方法
二、Object类中常用的方法
1.Object类的toString方法
格式:public String toString()
返回对象的字符串表示形式:一般来说toString方法返回一个toString代表这个对象的字符串,结果应该是简明扼要的表达,容易让人阅读。所以要求所有子类重写此方法,一般采用自动重写,在子类中用alt+ins选择toString()
//alt+ins
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
/*测试类
* */
public class ObjectDemo {
public static void main(String[] args) {
Student s=new Student();
s.setName("张三");
s.setAge(18);
System.out.println(s.toString());
}
}
2.Object类的equals方法
用于比较两个对象的内容是否相同,默认是比较的地址值,重写后可以比较内容
比如有两个学生对象,我要判断两个对象的内容是否相同
/*测试类
* */
public class ObjectDemo {
public static void main(String[] args) {
Student s=new Student();
s.setName("张三");
s.setAge(18);
Student s1=new Student();
s1.setName("张三");
s1.setAge(18);
//判断两个对象内容是否相同
System.out.println(s==s1);//返回false
System.out.println(s.equals(s1));//返回false
}
}
直接进行比较返回的是false,直接使用equals方法返回的也是false因为默认比较的是地址值,,所以我们要到子类中重写这个方法重写后可以比较内容,方式与toString重写相同,只不过需要把自动生成的hashCode()方法删除掉
@Override
public boolean equals(Object o) {
/*
this--s
o--s1
*/
if (this == o) return true;
//判断两个参数是否为null,判断两个对象是否来自同一个类
if (o == null || getClass() != o.getClass()) return false;
//向下转型
Student student = (Student) o;//student =s2
//比较姓名内容是否相同
return age == student.age && Objects.equals(name, student.name);
}
Java基础——Object类的更多相关文章
- java基础—object类
一.Object类介绍
- 第二十九节:Java基础知识-类,多态,Object,数组和字符串
前言 Java基础知识-类,多态,Object,数组和字符串,回顾,继承,类的多态性,多态,向上转型和向下转型,Object,数组,多维数组,字符串,字符串比较. 回顾 类的定义格式: [类的修饰符] ...
- java基础-System类常用方法介绍
java基础-System类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.System类概念 在API中system类介绍的比较简单,我们给出定义,system中 ...
- Java基础-StringBuffer类与StringBuilder类简介
Java基础-StringBuffer类与StringBuilder类简介 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.StringBuffer类 在学习过String类之后 ...
- Java面向对象 Object类 内部类
Java面向对象 Object类 内部类 知识概要: 一:Object类 二:内部类 匿名内部类的写法 1.Object O ...
- Java之Object类和常用的API
Object类和常用的API 学习过程中的笔记,涉及到Objetc中的equals方法和toString方法,日期类Date,日历类Calendar,日期格式化类SimpleDateFormat以及基 ...
- java基础-BigDecimal类常用方法介绍
java基础-BigDecimal类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigDecimal类概述 我们知道浮点数的计算结果是未知的.原因是计算机二进制 ...
- java基础-BigInteger类常用方法介绍
java基础-BigInteger类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.BigInteger类概述 Java中long型为最大整数类型,对于超过long ...
- java基础-Arrays类常用方法介绍
java基础-Arrays类常用方法介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Array类的概念 此类包含用来操作数组(比如排序和搜索)的各种方法.需要注意,如果指定 ...
随机推荐
- web虚拟主机、日志分割以及日志分析
目录 一.构建虚拟web主机 1.1 概述 1.2 支持的虚拟主机类型 1.3 部署虚拟主机步骤 1.3.1 基于域名的虚拟主机 (1)为虚拟主机提供域名解析 (2)为虚拟主机准备网页文档 (3)添加 ...
- Java两个整数相除保留n位小数
方式1:被除数转double后,除以除数,结果是一个double类型的数,将double结果按要求保留n位小数即可. 保留n位小数的写法 int a = 10; int b = 3; double r ...
- SQL代码规范
1. 建表规约 1) 表中字段名称 a) 表达是否概念的字段,必须使用is_xxx的方式命名,数据类型是bit b) 小数类型为decimal,禁止使用float和double. 说 ...
- netty系列之:可以自动通知执行结果的Future,有见过吗?
目录 简介 JDK异步缘起 netty中的Executor Future的困境和netty的实现 总结 简介 在我的心中,JDK有两个经典版本,第一个就是现在大部分公司都在使用的JDK8,这个版本引入 ...
- 编译安装 tree 命令
文章目录 下载源码包 编译源码包 tree下载地址:http://mama.indstate.edu/users/ice/tree/ Centos发行版,可以直接使用命令 yum -y install ...
- 1. 堪比JMeter的.Net压测工具 - Crank 入门篇
目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...
- java 人机猜拳 游戏
人机猜拳-游戏 掌握类和对象的使用,掌握方法的定义和返回值,掌握封装的运用 定义一个电脑类:Computer.java 点击查看[Computer.java]代码 /** * @Title: 电脑类 ...
- jmeter实现sha256算法加密
方法一:自带函数 参数含义 算法摘要:MD2.MD5.SHA-1.SHA-224.SHA-256.SHA-384.SHA-512 String to be hashed:要计算的字符串: Salt t ...
- 『无为则无心』Python基础 — 63、Python中的生成器
目录 1.为什么要有生成器 2.创建生成器 (1)简单创建生成器 (2)生成器的使用 3.yield关键词 (1)yield关键词说明 (2)send()方法说明 4.使用yield实现斐波那契数列 ...
- Linux 网络时间同步
Linux的时间分为System Clock(系统时间)和Real Time Clock (硬件时间,简称RTC). 系统时间:指当前Linux Kernel中的时间. 硬件时间:主板上有电池供电的时 ...