Java常用类及方法总结-狂神听课笔记

常用类及其方法

1.1、类的概念

类:类是一个模板,它描述一类对象的行为和状态。
问题:解释类中的基类,子类,派生类,父类,超类
答:基类,父类,超类都是一个意思,只不过是不同的说法而已。子类和派生类也一样。
例如:

class A{
   };
class B extends A{
   };
//这里B叫做父类或者基类,A叫做子类或者派生类

1.2、Object类

Object类是所有类(包括超类,基类)的直接或间接父类,位于继承树的最顶层。任何类,如果没有书写extends显式地继承某个类,都默认直接继承Object类,否则为间接继承。它当中所定义的方法,是所有对象都具备的方法。Object类中可以存储任何对象,它作为参数时,可以接受任何对象;作为返回值时,可返回任何对象。

1.2.1、getClass()方法
getClass()方法会返回引用中存储的实际对象,通常用来判断连个引用中实际对象的类型是否一致。

public class test {
   
    static class Student{
   
        private String name;
        private int age;
        public Student(String name, int age) {
   
            this.name=name;
            this.age=age;
        }
    }

    public static void main(String[] args) {
   
        Student stu1 = new Student("aaa", 20);
        Student stu2 = new Student("bbb", 22);
        //判断stu1和stu2是不是同一类型
        Class class1 = stu1.getClass();
        Class class2 = stu2.getClass();

        if (class1 == class2) {
   
            System.out.println("二者属于同一类型");
        } else {
   
            System.out.println("二者不是同一类型");
        }
    }
}

在这里插入图片描述

1.2.2、hashCode()方法
hashCode()方法会返回该对象的hash码值。hash值是根据对象的地址或者数字使用hash短发计算出来的int类型的数值。一般情况下,相同的对象会返回相同的hash码。

public class test {
   
    static class Student{
   
        private String name;
        private int age;
        public Student(String name, int age) {
   
            this.name=name;
            this.age=age;
        }
    }

    public static void main(String[] args) {
   
        Student stu1 = new Student("aaa", 20);
        Student stu2 = new Student("bbb", 22);

        System.out.println(stu1.hashCode());
        System.out.println(stu2.hashCode());

        Student stu3=stu1;
        System.out.println(stu3.hashCode());
    }
}

在这里插入图片描述

1.2.3、toString()方法
toString()方法会返回该对象的字符串表示,我么可以根据程序需求覆盖该方法,如:展示对象的各个属性的值
测试一:不重写Object类的toString()方法(Student类默认继承Object)

package com.Sam;

public class test {
   
    static class Student{
   
        private String name;
        private int age;
        public Student(String name, int age) {
   
            this.name=name;
            this.age=age;
        }
    }
    public static void main(String[] args) {
   
        Student stu1 = new Student("aaa", 20);
        Student stu2 = new Student("bbb", 22);

        System.out.println(stu1.toString());
        System.out.println(stu2.toString());
    }
}

在这里插入图片描述

解释:Object类自身的toString()方法会返回一个字符串,即:
包名+类名+@+此对象哈希码的无符号十六进制表示
getClass().getName() + ‘@’ + Integer.toHexString(hashCode());菜鸡如我表示看不懂xd。

测试二:重写Object类的toString()方法

package com.Sam;

public class test {
   
    static class Student{
   
        private String name;
        private int age;
        public Student(String name, int age) {
   
            this.name=name;
            this.age=age;
        }

        @Override
        public String toString() {
   
            return "Student{" +
                    "name='" + name + '\'' +
                    ", age=" + age +
                    '}';
        }
    }
    
    public static void main(String[] args) {
   
        Student stu1 = new Student("aaa", 20);
        Student stu2 = new Student("bbb", 22);

        System.out.println(stu1.toString());
        System.out.println(stu2.toString());
    }
}

在这里插入图片描述

1.2.4、equals()方法
该方法默认实现为(this==obj),即比较两个对象地址是否相同,也可重写,比较两个对象的内容是否相同。

package com.Sam;

public class test {
   
    static class Student{
   
        private String name;
        private int age;
        public Student(String name, int age) {
   
            this.name=name;
            this.age=age;
        }

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

    public static void main(String[] args) {
   
        Student stu1 = new Student("aaa", 20);
        Student stu2 = new Student("bbb", 22);

        Student stu3=stu1;
        System.out.println(stu1.equals(stu2
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值