Java常用类——Object类 及Java JDK1.8 中文帮助手册

一、API(应用程序编程接口)
1、概述
比如:我做一个商城网站,需要用到微信支付,那么微信支付会提供一些控制微信支付的Java类,这些类中定义好了操作微信支付的各种方法,这些Java类就是微信支付提供的编程接口,我们通常称为“微信支付API

2、Java API

  • 指的是:Java已经给我们提供好了的供我们使用的一些类

3、Java JDK1.8中文帮助手册( 提取码:nmfi )下载

注意:在上面的帮助手册里:

  • java.lang : 提供对java编程语言的设计基础库
  • java.util: 包含集合框架、遗留的集合类、事件模型、日期和时间的设施、国际化和各种实用工具类(一个字符串标记,一个随机数发生器,和一位阵列)
  • java. io:通过数据流、序列化和文件系统提供系统的输入和输出
  • java. net: 为实现网络应用程序提供类。

二、Object类
1、概述

  • 类层次结构的根类
  • 所有类都直接或间接的继承 Object 类

2、构造方法

  • public Object()
  • 巧记:子类的构造方法,默认访问父类的无参构造函数

3、Object 类

基础单词:

  • hashCode(哈希代码)
  • getClass(获取类)
  • toString(转换为字符串)
  • equals(等于)
  • finalize(完成)

4、Object类常见的成员方法

  • public int hashCode()
  • public final Class getClass()
  • public String toString()
  • public boolean equals(Object obj)
  • protected void finalize()
  • protected Object clone()

5、 public int hashCode()//返回一个对象的哈希代码值
在 0_object 项目里,新建 object_1 包,包里新建两个 java 类
在这里插入图片描述
在这里插入图片描述
代码:

package object_1;

public class ObjectDemo extends Object_1 {
    public static void main(String[] args){
        Object_1 o1 = new Object_1();
        System.out.println(o1.hashCode());//输出hashCode的值
        Object_1 o2 = new Object_1();
        System.out.println(o2.hashCode());
        Object_1 o3 = o2;
        System.out.println(o3.hashCode());
    }
}

6、public final Class getClass()//返回该Object运行时类

package object_1;

public class ObjectDemo extends Object_1 {
    public static void main(String[] args){
        Object_1 o4 = new Object_1();
        Class c1 = o4.getClass();//获取类
        System.out.println(c1);
        System.out.println("_____________");
        String str1 = c1.getName();
        System.out.println(str1);
        System.out.println("_____________");
        String str2 = c1.getClass().getName();
        System.out.println(str2);
    }
}

7、public String toString()//返回对象的字符串表示形式
8、public boolean equals(Object obj)//是否有其他对象“等于”这一个,默认比较内存地址

package object_1;

public class Object_01 extends Object{
    private String name;
    private int age;

    public Object_01() {
        super();
    }

    public Object_01(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public static void main(String[] args){
        Object_01 s1 = new Object_01("苍井空", 18);//在堆里产生对象
        Object_01 s2 = new Object_01("苍井空", 18);//在堆里又产生对象,和上面的内存地址不同
        System.out.println(s1 == s2); // false ==比较内存地址
        Object_01 s3 = s1;
        System.out.println(s1 == s3);// true
        System.out.println("---------------");

        System.out.println(s1.equals(s2)); // obj = s2; //false
        System.out.println(s1.equals(s1)); // true
        System.out.println(s1.equals(s3)); // true
        Object_01 s4 = new Object_01("波多野结衣",20);
        System.out.println(s1.equals(s4)); //false
        System.out.println("++++++++++++++++++");

        Object_01 d = new Object_01();
        System.out.println(s1.equals(d)); //ClassCastException //false
    }
}

两者结果不同

package object_1;

public class Object_01 extends Object{
    private String name;
    private int age;

    public Object_01() {
        super();
    }

    public Object_01(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Object_01 other = (Object_01) obj;
        if (age != other.age)
            return false;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        return true;
    }
    public static void main(String[] args){
        Object_01 s1 = new Object_01("苍井空", 18);//在堆里产生对象
        Object_01 s2 = new Object_01("苍井空", 18);//在堆里又产生对象,和上面的内存地址不同
        System.out.println(s1 == s2); // false ==比较内存地址
        Object_01 s3 = s1;
        System.out.println(s1 == s3);// true
        System.out.println("---------------");

        System.out.println(s1.equals(s2)); // obj = s2; //这个和上一个有区别,结果是true
        System.out.println(s1.equals(s1)); // true
        System.out.println(s1.equals(s3)); // true
        Object_01 s4 = new Object_01("波多野结衣",20);
        System.out.println(s1.equals(s4)); //false
        System.out.println("++++++++++++++++++");

        Object_01 d = new Object_01();
        System.out.println(s1.equals(d)); //ClassCastException //false
    }
}

9、protected void finalize()//当垃圾收集确定没有对对象的引用时,由对象上的垃圾收集器调用
10、protected Object clone()//创建并返回类的副本

猜你喜欢

转载自blog.csdn.net/weixin_43860260/article/details/91346506