常用的类和方法

一、java常用的包:

二、java.lang包的Object类

三、重写equals方法

四、重写tostring方法


前置知识:多态:当父类类型的引用指向子类类型的对象时,就叫多态

                  子类继承父类:不能继承的方法只有构造私有

一、java常用的包:

        java.lang包 - 该包是Java语言的核心包,并且该包中的所有内容由Java虚拟机自动导入。 如:System类、String类、...

         java.util包 - 该包是Java语言的工具包,里面提供了大量工具类以及集合类等。 如:Scanner类、Random类、List集合、...

         java.io包 - 该包是Java语言中的输入输出包,里面提供了大量读写文件相关的类等。 如:FileInputStream类、FileOutputStream类、...

         java.net包 - 该包是Java语言中的网络包,里面提供了大量网络编程相关的类等。 如:ServerSocket类、Socket类、...

        java.sql 包 - 该包是Java语言中的数据包,里面提供了大量操作数据库的类和接口等。 如:DriverManager类、Connection接口

二、java.lang包的Object类

定义:是Java语言中类层次结构的根类(所有类的顶层父类),也就是说任何一个类都是该类的直接或者间 接子类

注意:如果定义一个Java类时没有使用extends关键字声明其父类,则其父类默认为 java.lang.Object 类。

Object()使用无参方式构造对象,Object的子类可以用super()方法调用这个方法
boolean equals(Object obj)

(由于形参为Object,所以实参类型可以随便传)

用于判断调用对象是否与参数对象相等。 该方法默认比较两个对象的地址是否相等,与 == 运算符的结果一致 若希望比较两个对象的内容,则需要重写该方法。 若该方法被重写后,则应该重写hashCode方法来保证结果的一致 性。

int hashCode()

用于获取调用对象的哈希码值(内存地址的编号)。

若两个对象调用equals方法相等,则各自调用该方法的结果必须相同

若两个调用对象equals方法不相等,则各自调用该方法的结果应该 不相同。 为了使得该方法与equals方法保持一致,需要重写该方法。

String toString()用于获取调用对象的字符串形式 该方法默认返回的字符串为:包名.类名@哈希码值的十六进制 为了返回更有意义的数据,需要重写该方法 使用print或println打印对象或字符串拼接该对象都会自动调用该对象的toString方法
Class getClass()用于返回调用对象执行时的Class实例,反射机制使用

注意:equals方法为什么和"=="一样?,因为equals的内部实现也是用"=="来判断的

public boolean equals(Object obj) {
        return (this == obj);
    }

三、重写equals方法

若重写equals方法,则也应该重写hashcode方法。

因为java官方规定,若两个对象的equals方法的结果相等,则两个对象的hashcode也应该相同

注意:Object类虽然是顶层父类,但是也需要进行强转才能使用子类的方法

instanceof用来判断obj的类型是否是Student,如果是,就不要进行强转,不然会报异常

public boolean equals(Object obj) {
    if(this == obj)
            return true;
    }
    if(null == obj)
            return false;
    }
    if(obj instanceof Student)
            Student ts = Student(obj);
            return this.getId()==ts.getId();
    }else{
        return false;
    }

内存结构分析:

Student ts 相当于在栈区申请一块内存,new Student()相当于在堆区申请一块内存

四、重写tostring方法

打印引用变量时,会自动调用该类的toString方法。

toString返回值为包名.类名@哈希码值的十六进制

重写后可以使toString方法更有意义,重写后为以下格式

 public String toString(){
        return "这个汽车名叫 "+carName+",型号是 "+carNo+",汽车颜色 "+color+",价格 "+price;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值