首页 > 编程语言 >javaSE学习Day1之Object类的使用

javaSE学习Day1之Object类的使用

时间:2023-03-26 15:25:17浏览次数:57  
标签:String Object 数据类型 equals Day1 toString javaSE 变量

Object类的使用

Object类

Object类中的方法可以在网上搜索得到

  • Object类是所有java类的父类

  • 如果类在声明中未使用extends关键字指明其父类,则默认父类为java.lang.Object类

  • Object类中的功能(属性、方法)具有通用性。

    属性:无

    方法:equals() / toString() / getClass() / hashCode() /clone() / finalize() / wait() / notify() / notifyAll()

  • Object只有一个空参构造器


==和equals()的区别

1、 ==的使用:

  1. 可以使用在基本数据类型变量和引用数据类型变量中

  2. 如果比较的是基本数据类型的变量,比较的是两个变量保存的数据是否相等(不一定要类型相同)

    如果比较的是引用数据类型变量,比较的是两个变量的地址值是否相同,即两个引用是否指向同一个对象实体。

2、equals()的使用:

  1. 是一个方法,而非运算符

  2. 只能应用于引用数据类型

  3. Object类中equals()定义:

    pubulic boolean equals(Object obj){

    ​ return (this == obj)

    }

    //说明:Object类中定义的equals()和==作用是相同的,即两个引用是否指向同一个地址

  4. 像String、Date、File、包装类都重写了equals()方法,即比较的是两个对象的"实体内容"是否相同

  5. 通常情况下,我们自定义的类如果调用equals()方法,通常是比较对象的"实体内容"是否相同,因此需要对Object类的equals()方法进行重写。【一些编译器可以自动生成重写的代码】

Customer cust1 = new Customer("TOM",21);
Customer cust2 = new Customer("TOM",21);
String str1 = new String("aaa");
String str2 = new String("aaa");
System.out.println(cust1.equals(cust2));//flase
System.out.println(str1.equals(str2));//true

基本数据类型变量

  • 在内存种存储的是一个基本类型值。
  • 可以在栈中直接分配内存
  • 例如 int a=1; 变量a的值就是int值1;

引用数据类型变量

  • 对应内存所存储的值是一个引用,是对象的存储地址。
  • 对象的引用在栈中,对象实际存放在堆中。
  • 例如 Circle circle = new Circle(9)【参数表示半径】; 变量circle 的值保存的是一个引用,它指明这个Circle对象的内容存储在内存的什么位置。

toString()方法

  1. 当我们输出一个对象的引用时就是调用当前对象的toString()
  2. Object类中toString()定义

public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

  1. 像String、Date、File、包装类都重写了toString()方法,使得调用toSting()方法时,返回"实体内容"信息
  2. 自定义类也可以重写toString()方法,当调用此方法时,返回对象的"实体内容"【一些编译器可以自动生成重写的代码】

标签:String,Object,数据类型,equals,Day1,toString,javaSE,变量
From: https://www.cnblogs.com/KJplant/p/17258726.html

相关文章

  • javaSE学习Day1之多态及向下转型
    向下转型的使用Java的多态性:父类指向子类的声明Animalanimal=newDog()//Dog()重写了父类Animal有了对象的多态性以后,内存实际上加载的是子类的属性和方法,但是由......
  • day13-SpringBoot整合MyBatis/Plus
    SpringBoot整合MyBatis/Plus1.SpringBoot整合MyBatis1.1整合案例需求:整合SpringBoot和Mybatis,向数据库中查询数据。项目结构:1.1.1创建数据库和表--创建数据库DROP......
  • LickedList中由Object 类转换为int整形
    LickedList中由Object类转换为int整形遇到的一道题,我使用LickedList来对数据进行增加和删除操作,其中遇到需要将list数据转换为int整形数据的操作。 首先把Object......
  • JavaSE
    前言字节流和字符流体系相同,仅操作的数据类型不同。节点流和过滤流的关系,是装饰者模式的体现。转换流,是适配器模式的体现。I/O对磁盘文件的读写,针对的是File类。......
  • JavaSE
    File:用于代表磁盘中的一个文件或文件夹(未必真实存在),提供操作文件本身的方法。1、常用属性路径分隔符:;pathSeparator``pathSeparatorChar`名称分隔符:\Separ......
  • centos安装xampp后报错:egrep: error while loading shared libraries: libc.so.6: can
    1、centos6.9安装xampp(xampp-linux-x64-7.0.21-0-installer.run)后启动的时候,报错: 2. 有人说少了glibc包,但是机器不缺少报错的包3.正确答案:vi/opt/lampp/lampp找到......
  • day12-SpringBoot数据库操作
    SpringBoot数据库操作1.JDBC+HikariDataSource在SpringBoot2.x项目中,默认使用Hikari连接池管理数据源。相比于传统的C3P0、DBCP、Tomcatjdbc等连接池更加优秀。当......
  • Object.toString与Object.prototype.toString区别
    1、Object原型链上的toString方法可以用于对象类型的判断,如常用的区分数组与普通对象。例如:Object.prototype.toString.call('');//[object......
  • vue3报错 Vue received a Component which was made a reactive object.
    报错信息如下:VuereceivedaComponentwhichwasmadeareactiveobject.Thiscanleadtounnecessaryperformanceoverhead,andshouldbeavoidedbymarkingthe......
  • java-Object的通用方法:equals()、hashCode()、toString()、clone()
    1/**2*Object通用方法:equals()、hashCode()、toString()、clone()3*/4@Data5@NoArgsConstructor6@AllArgsConstructor7publicclassobje......