toString()方法 day10

/*
    Object类学习:是java中所有的共同的父类,包括数组
        1、Object类是属于java.lang包下的,将来使用的时候不需要导包
        2、构造方法只有一个无参的构造方法
        3、方法都不是静态的,以为着要有对象才可以调用

    成员方法:
        public int hashCode()
        public final Class getClass() 获取类在内存中的Class对象(字节码文件对象),全局唯一
        public String toString()
            - com.shujia.day10.Demo1@4554617c
            - getClass().getName() + '@' + Integer.toHexString(hashCode())



 */
class Demo1{

}

public class ObjectDemo1 {
    public static void main(String[] args) {
        Demo1 demo1 = new Demo1();
        System.out.println(demo1.hashCode()); // 1163157884 理解为地址值的另外一种体现,int类型形式体现
        Demo1 demo2 = new Demo1();
        System.out.println(demo2.hashCode()); // 1956725890

        Class c1 = demo1.getClass(); // 调用Object类中的getClass方法获取class文件在内存中的唯一Class对象
        System.out.println(c1.getName()); // 调用Class类中的getName方法,获取类的名字

        System.out.println(demo1.toString()); // com.shujia.day10.Demo1@4554617c 理解为地址值
        System.out.println(demo2.toString()); // com.shujia.day10.Demo1@74a14482

        //直接输出对象的名字,默认是输出对象调用父类Object中的toString()的结果
        System.out.println(demo1); // com.shujia.day10.Demo1@4554617c

        Student s1 = new Student("小虎", 18);
//        System.out.println(s1.toString()); // com.shujia.day10.Student@1540e19d
        /**
         * 我们直接输出自定义类对象的时候,我们更希望看到的是该对象成员变量值的一个情况
         * 我们拿地址其实是作用不大。
         * 今后toString()方法自动生成即可
         *
         * 一个标准类的4.0版本:
         *  成员变量:使用private修饰
         *  构造方法:一个无参,一个有参
         *  成员方法:getXxx()和setXxx()以及重写toString()方法
         *
         */
        System.out.println(s1);
    }
}
posted @ 2024-08-07 22:19  ていせい  阅读(2)  评论(0编辑  收藏  举报