JAV学习Object类

2023-11-05

Obj类

首先我们要认识到
Object类是我们所有类的顶层父类,所有类都是直接或者间接的继承自他
我们可以将它new出来也就是格式

	Object obj = new Object();

我们罗列出来objct类的常用方法然后再一一介绍

方法名 object调用方法
hashCode obj.hashCode()
getClass obj.getClass()
toString obj.toString
equals obj.equals(obj2)
clone() obj.clone

首先我们先来看hashCode方法

public static void main(String[] args) {
    Object obj = new Object();
    int i = obj.hashCode();
    System.out.println(i);
}
输出结果是  356573597
//这个不是一个什么固定的数字,这个代表他把i的地址值整数化了
//所以说haskCode的作用是把对象的地址值换算成一个整数


接下来看equals方法

public static void main(String[] args) {
    Object obj = new Object();
    Object obj2 = new Object();
    boolean equals = obj.equals(obj2);//调用equals方法
    System.out.println(equals);
}
//输出结果是false,因为equals比较的是两个地址值是否相等,返回值是波尔
//类型

接下来看getClass方法

 public static void main(String[] args) {
        Student student1 = new Student("张三", 23);
        Student student2 = new Student("张三", 23);
        Class aClass = student1.getClass();
        Class aClass1 = student2.getClass();
        System.out.println(aClass == aClass1);//输出是true 
        System.out.println(student1.equals(student2));//输出是false
        System.out.println(student1 == student2);//输出是false
    }
}
//一个Student类
class Student{
    private String name;
    private int age ;

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
//用getClass方法可以将原来的元素提取出来,在这个案例中,用getClass取
//出来进行元素间的比较,然后判断元素是否相同。用student1和student2比较
//不管是用==号链接还是调用equals方法来调用比较都输出的是false,因为他
//们比较的是地址值的是否相等

toString方法
toString是将其他类转换成字符类的方法,也就是返回该对象的字符串表示
clone方法
这个方法就更简答了,他是创建并返回对象的一个副本
也就是克隆,克隆对象的时候不会执行构造方法
cloneable里面没有任何抽象方法,这种接口我们称之为标记接口

现在我们优化一下equals,上面说equals是比较地址值的方法,我们优化到按照自己的意愿能比较元素,来比较是否相等

public class test {
public static void main(String[] args) {
    Animal animal = new Animal("Tom",25);
    Animal animal1 = new Animal("Tom",25);
    boolean b = animal.equals(animal1);
    System.out.println(b);//输出结果是true
}
public class Animal {
    private String name;
    private int age;

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
//重写equals方法,让他也比较元素的同否,而不是地址值
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Animal animal = (Animal) o;
        return age == animal.age && Objects.equals(name, animal.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAV学习Object类 的相关文章

  • 相关概念地址笔记

    公平锁与非公平锁 https www jianshu com p f584799f1c77 java socket编程https www cnblogs com mingforyou p 3258418 html java四种引用类型htt
  • RocketMQ解析

    文章目录 1 单机版消息中心 2 分布式消息中心 2 1 问题与解决 2 1 1 消息丢失的问题 2 1 2 同步落盘怎么才能快 2 1 3 消息堆积的问题 2 1 4 定时消息的实现 2 1 5 顺序消息的实现 2 1 6 分布式消息的实
  • (java基础学习)异常

    1 基本概念 java语言中 将程序中发生的不正常情况称为 异常 开发过程中的语法错误和逻辑错误不是异常 2 异常事件分为两大类 1 Error 错误 2 Exception 1 Error 错误 java虚拟机无法解决的严重问题 如 JV
  • java入门二:java流程控制

    1 用户交互Scanner java util Scanner是Java5的新特性 可以通过Scanner类来获取用户的输入 基本语法 Scanner s new Scanner System in 通过Scanner类的next 与nex
  • java入门一:java语法基础

    1 注释 标识符 单行注释 多行注释 文字 文档注释 文字 注释不会被编译 写给程序员看 平时写代码一定写注释 方便别人看的懂你的代码 或者写久了自己忘了干嘛的 关键字 abstract assert boolean int class 不
  • java进阶一:java集合

    1 集合简介 集合和数组类似 都是储存元素的容器 数组像是静态容器 长度一旦创建就不能再改变 元素类型必须统一 只能通过下标去索引元素等 集合像是动态容器 集合的长度可以动态的改变 元素类型可以不一致 可以用某个映射的关系去索引元素等 ja
  • Android校招复习全书(1)-j2se

    一 九种基本数据类型的大小 以及他们的封装类 关于JAVA基本数据类型 名称 解释 长度 位 默认值 封装类 byte 字节 8 0 Byte shot 短整型 16 0 Short int 整型 32 0 Integer long 长整型
  • 关于java中File类的总结

    1 File类只是操作文件 不涉及内容 2 File类的重要方法 设置完整路径 public File String filename 删除文件 public boolean delete 判断文件是否存在 public boolean e
  • JAV学习Object类

    Obj类 首先我们要认识到 Object类是我们所有类的顶层父类 所有类都是直接或者间接的继承自他 我们可以将它new出来也就是格式 Object obj new Object 我们罗列出来objct类的常用方法然后再一一介绍 方法名 ob
  • Java中局部变量、静态变量、静态方法的有效范围与调用

    1 局部变量 定义 在成员方法中定义的变量称为局部变量 方法中的形参也可以作为局部变量 例 public void method1 n i均为局部变量 int n for int i 0 i lt 5 i System out printl
  • c# 中MD5.ComputeHash() aes加密,在Java和golang中的实现

    类似移植C 代码需求 需要加密效果一致 C 中使用了AesCryptoServiceProvider加密 文档链接 AesCryptoServiceProvider 类 下载里面代码在Visul Studio2019中可以针对原加密字符解密
  • JDK源码系列 & JAVA语言数据类型Byte

    目录 类的继承结构图 类的Diagram图 类 类的注释 源码分析 全局变量 静态内部类 构造方法 静态方法 parseByte 静态方法 valueOf 静态方法 toString 静态方法 hashCode 静态方法 decode 静态
  • Java基础学习之函数式编程Comsumer接口(JDK8)

    前言 从毕业到现在正好三年 高难度的项目做了不少 但是基础这个东西一段时间不接触就会忘得一干二净 话不多说 开始今天的学习 1 Consumer接口 接触过 消费者 生产者 模式的同学 肯定对这个单词不陌生 在java8函数式编程和lamb
  • Java常用类(比较器、System类、Math类、BigInteger和BigDecimal类)

    Java常用类 比较器 System类 Math类 BigInteger和BigDecimal类 一 比较器 一 自然排序 使用Comparable接口 二 定制排序 使用Comparator接口 二 System类 三 Math类 四 B
  • Java学习(对象与类)——文档注释,生成JavaDoc文件

    目录 注释的插入 类注释 方法注释 字段注释 通用注释 包注释 生成帮助文档JavaDoc 注释的插入 javadoc实用工具从下面几项中抽取信息 模块 包 公共类和接口 公共的和受保护的字段 公共的和受保护的构造器及方法 每个文档注释 包
  • 30--子类对象的实例化过程

    在继承的操作中 对于子类的实例化也是有要求的 即子类对象在实例化之前必须首先调用父类中的构造方法 然后再调用子类自己的构造方法 实例1 定义父类 package com qwy bean public class Person privat
  • java入门四:数组

    1 数组概述 数组是最简单的数据结构 是相同类型数据的有序集合 数组描述的是相同类型的若干个数据 按照一定的先后次序排列组合而成的 数组中 每一个数据称作一个数组元素 每个数组元素可以通过一个下标来访问他们 2 数组的声明创建 首先必须声明
  • Java基础学习之函数式编程Predicate接口(JDK8)

    前言 今天继续来学习函数式编程接口之Predicate接口 1 上源码 package javax persistence criteria import java util List public interface Predicate
  • java入门六:java基础终章

    1 static关键字 静态变量和类一起加载 final修饰后的类无法被继承 2 抽象类 abstract修饰符可以用来修饰方法也可以修饰类 如果修饰方法 那么该方法就是抽象方法 如果修饰类 那么该类就是抽象类 抽象类中可以没有抽象方法 但
  • Java基础学习之并发篇:手写阻塞队列ArrayBlockingQueue

    学习目标 我们都知道在并发编程中 阻塞队列在多线程中的场景特别有用 比如在生产和消费者模型中 生产者生产数据到队列 队列满时需要阻塞线程 停止生产 消费者消费队列 对队列为空时阻塞线程停止消费 在Java中有提供不同场景的阻塞队列 那么接下

随机推荐

  • SSTI 无回显绕过_带外注入

    SSTI 无回显注入 带外注入 SSTI课程推荐 重庆橙子科技 SSTI模板注入 我在这里学到了很多 配合 docker 靶场 mcc0624 flask ssti 食用效果更佳 建议各位在学习带外时先基本掌握 TCP IP 的基础知识和
  • MyBatis查询时间格式转换yyyy-MM-dd HH:mm:ss

    MyBatis查询时间格式转换yyyy MM dd HH mm ss 一 通过配置model model private Date createTime JsonFormat pattern yyyy MM dd HH mm ss priv
  • 爬虫第六课:爬取携程酒店数据

    首先打开携程所有北京的酒店http hotels ctrip com hotel beijing1 简简单单 源代码中包含我们需要的酒店数据 你以为这样就结束了 携程的这些数据这么廉价地就给我们得到了 事实并不是如此 当我们点击第二页的时候
  • 怎么使用LINQ方法来比较自定义类型对象

    LINQ提供了方便的语法和很多操作对象集合的有用的方法 但是 要让LINQ比较方法如Distinct或Intersect能正确处理 类型必须要满足一些条件 让我们看看Distinct方法 它从集合中返回所有的不重复对象 List
  • 【我的面试-前端】以下是我在参加面试过程中被问到的问题以及答案

    JavaScript 数据类型 面试中经常被问到 JavaScript 数据类型都有哪些 有些时候面试者因为紧张连这最基础的题目都回答不出来或者回答不够全面 下面我们来具体了解下 JavaScript 数据类型吧 首先 需要答出 JavaS
  • 颜值超高的简单计算器(HTML+CSS+JS)

    先来看一下效果吧
  • k8s通过nfs-provisioner配置持久化存储

    一 nfs client provisioner简介 Kubernetes集群中NFS类型的存储没有内置 Provisioner 但是你可以在集群中为NFS配置外部Provisioner Nfs client provisioner是一个开
  • vue项目实现路由按需加载(路由懒加载)的3种方式

    vue项目实现按需加载的3种方式 转自 https segmentfault com a 1190000011519350 vue异步组件 es提案的import webpack的require ensure 1 vue异步组件技术 异步加
  • 修改本地host文件

    在有些时候可能因为访问一些网址的时候 可能因为浏览器对部分网站的签名不认可导致无法访问 根据浏览器不同 有时候可以选择高级选项允许访问 有时候只能停留在报错页 这时候可以通过设置本地的host文件 允许浏览器访问 首先我们找到目录C Win
  • VSCode HTML代码中怎么导入其他文件夹中的内容

    在标签下插入 link rel stylesheet href css xxx css 其中 css xxx css 为路径标签 意思是在一个叫做css的文件夹中有的一个叫xxx css的css样式文件
  • sqli-labs第二十六二十六a关

    这关油条加你的可以试试linux搭建sqlilabs这样比较简单 需要注意的 本关可能有的朋友在 windows 下无法使用一些特殊的字符代替空格 此处是因为 apache 的解析的问题 这里请更换到 linux 平台下 本关结合 25 关
  • 智能合约(一)————智能合约入门

    1 智能合约的基本组成 1 1 程序版本 1 2 合约声明 1 3 状态变量 1 4 合约方法 在这里constant相当于他声明这个局部变量不能更改 但是他并没有实际作用 实际就只是警示作用 2 地址adress address bala
  • GDB忽略SIGPWR和SIGCPU这两个信号

    用GDB 调试Java程序 陈皓 http blog csdn net haoel 背景 想要使用GDB调试程序 就需要用GNU的编译器编译程序 如 用GCC编译的C C 的程序 才能用GDB调试 对于Java程序也是一样的 如果想要用GD
  • 【嵌入式】7段数码管电路原理

    电路原理说明 中间的是F 小数点是G 上面的对应具体管 下面的代表各个大管 两两对应 上面4个为一个字节 有两个字节 下面直接为一个字节 要让某个数字亮起必须满足两个逻辑条件 对应的 LED SEL 必须为 0 低电频 代表对应笔画的 LE
  • 无符号整形和有符号整形的比较

    对无符号整形比较的错误认知 整形数据存储形式 进制的转换 原码 反码 补码 转换原理 代码演示 总结 整形数据存储形式 在计算机内存里 整数以补码形式存储 正数的补码即原码 进制的转换 原码 反码 补码 正数的原码 正数的反码 正数的补码
  • 从进程中操作WPF窗体的显示隐藏

    一 问题描述 如何在一个进程中 打开另一个进程中的wpf已经隐藏的窗体 二 解决方案 1 在WPF进程中 获取该窗体的句柄 并保存到某个文件 这个文件可以是内存映射文件 也可以是普通的xml文件 在WPF的MainWindow中 添加 pr
  • Manjaro 根据连接速度排序配置源地址

    一 引言 使用 Manjaro 已经有一段时间了 一开始按照某一篇博客手动配置了国内源 最近公司搬了新的办公室 发现升级系统时出现连接不到更新服务器的问题 sudo pacman Syu 一定是源访问出现了问题 那么怎么办呢 二 解决 通过
  • (Leetcode) 寻找数组的中心索引- Python实现

    题目 给定一个整数类型的数组 nums 请编写一个能够返回数组 中心索引 的方法 我们是这样定义数组中心索引的 数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和 如果数组不存在中心索引 那么我们应该返回 1 如果数组有多个中心索引
  • Vue项目优化——通过 externals 加载外部 CDN 资源

    1 发现项目中存在的问题 为了直观地发现项目中存在的问题 我们可以在打包时生成报告 我们可以通过VueCli可视化的UI面板运行bulid直接查看报告 而在报告中我们发现了有这么一个文件 体积比较大 这样可能会造成我们较长时间的请求 2 那
  • JAV学习Object类

    Obj类 首先我们要认识到 Object类是我们所有类的顶层父类 所有类都是直接或者间接的继承自他 我们可以将它new出来也就是格式 Object obj new Object 我们罗列出来objct类的常用方法然后再一一介绍 方法名 ob