Java 学习和实践笔记(27):Object类的基本特性、toString方法以及IDEA的部分快捷键介绍

Object类基本特性:

1.Object类是所有类的父类,所有的Java对象都拥有Object类的属性和方法(注意拥有并不等于可以直接使用)

2.如果在类的声明中未使用extends,则默认继承Object类。

toString方法是Object类里定义的一个方法,其作用是返回默认对象的地址(对象的hashcode是根据对象的地址生成唯一值,这里暂时直接视作对象的地址。)

使用示例1:

java 复制代码
public class TestObject {
    int id;
    String name;
    String pwd;

    public TestObject(int id, String name, String pwd) {//自定义的构造器
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    TestObject(){};//写了自定义构造器如仍要默认的构造器,就需要写出来。

    public static void main(String[] args) {
        TestObject t1 = new TestObject();
        System.out.println(t1.toString());//使用toString()方法得到t1的地址
        TestObject t2 = new TestObject();
        System.out.println(t2.toString());
        System.out.println(t2);//如果不写toString,默认也是调用toString()
    }
}

运行结果如下:

toString方法如上所示,默认作用只是返回对象的地址。如果我们想用这个方法,返回对象的一些属性,那么需要重写这个方法。示例如下:

java 复制代码
public class TestObject {
    int id;
    String name;
    String pwd;

    public TestObject(int id, String name, String pwd) {//自定义的构造器
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }

    TestObject(){};//写了自定义构造器如仍要默认的构造器,就需要写出来。


    @Override
    public String toString() { //这就是重写了toString方法,使其能返回想要的对象属性
        return "ID:"+id+"账户名:"+name+"密码:"+pwd;
    }

    public static void main(String[] args) {
        TestObject t1 = new TestObject();
        System.out.println(t1.toString());//使用toString()方法得到t1的地址
        TestObject t2 = new TestObject();
        System.out.println(t2.toString());
        System.out.println(t2);//如果不写toString,默认也是调用toString()
    }
}
相关推荐
INS_KF37 分钟前
【C++知识杂记2】free和delete区别
c++·笔记·学习
Easocen1 小时前
Mybatis学习笔记(五)
笔记·学习·mybatis
丑小鸭是白天鹅3 小时前
嵌入式C语言学习笔记之枚举、联合体
c语言·笔记·学习
楼田莉子4 小时前
C++算法题目分享:二叉搜索树相关的习题
数据结构·c++·学习·算法·leetcode·面试
十一10244 小时前
FX10/20 (CYUSB401X)开发笔记5 固件架构
笔记
FakeOccupational5 小时前
【电路笔记 通信】AXI4-Lite协议 FPGA实现 & Valid-Ready Handshake 握手协议
笔记·fpga开发
奶黄小甜包5 小时前
C语言零基础第18讲:自定义类型—结构体
c语言·数据结构·笔记·学习
rannn_1118 小时前
【MySQL学习|黑马笔记|Day7】触发器和锁(全局锁、表级锁、行级锁、)
笔记·后端·学习·mysql
喜欢吃燃面8 小时前
C++算法竞赛:位运算
开发语言·c++·学习·算法
传奇开心果编程8 小时前
【传奇开心果系列】Flet框架实现的家庭记账本示例自定义模板
python·学习·ui·前端框架·自动化