2021-03-08

API

Object类
在这里插入图片描述

package cn.itcast.demo1;

/*
    Object类:
        概述:
            类层次结构最顶层的基类,所有类都直接或间接的继承自Object类.
        构造方法:
            public Object()
        成员方法:
            int hashCode():     返回对象的哈希码值.
            Class<?> getClass():返回该调用者的字节码文件对象.
            String toString():  返回该对象的字符串表示形式.
            boolean equals():    比较两个对象是否相等.
        注意:
            java.lang包下的类可以直接使用, 不需要导包.
 */
public class Test {
    public static void main(String[] args) {
        //非静态方法的调用方式: 通过 对象名. 的形式调用.
        //1. 创建Object类型的对象.
        Object obj1 = new Object();
        Object obj2 = new Object();

        //2. 测试Object类中的成员方法.
        //int hashCode():     返回对象的哈希码值, 不同对象的哈希码值一般不同.
        int code1 = obj1.hashCode();
        int code2 = obj2.hashCode();
        System.out.println(code1);
        System.out.println(code2);
        System.out.println("---------------------------");

        // Class<?> getClass():返回该调用者的字节码文件对象, 一个类只有一个字节码文件对象.
        Class clazz1 = obj1.getClass();
        Class clazz2 = obj2.getClass();
        System.out.println(clazz1);
        System.out.println(clazz2);
        System.out.println("---------------------------");

        //String toString():  返回该对象的字符串表示形式, 默认打印的是地址值, 但是不同对象的地址值肯定不同.
        //                     地址值的组成: 全类名 + @ + 该对象的哈希码的无符号十六进制形式
        String s1 = obj1.toString();
        String s2 = obj2.toString();
        System.out.println(s1);
        System.out.println(s2);
        System.out.println("---------------------------");

        // boolean equals():    比较两个对象是否相等, 默认比较的是地址值, 无意义, 子类一般都会重写这个方法.
        boolean b1 = obj1.equals(obj2);
        System.out.println(b1);

    }
}


/*
class Person extends Object {

}

class Student extends Person{

}*/

========================

JavaBean类重写Object类中的方法

package cn.itcast.demo2;

import java.util.Objects;

//学生类
public class Student {
    //成员变量
    private int id;         //编号
    private String name;    //姓名
    private int score;      //成绩
    //构造方法
    public Student() {
    }
    public Student(int id, String name, int score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }
    //成员方法
    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

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

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }

    //toString(), 用来将对象转成其对应的字符串形式.
    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", score=" + score +
                '}';
    }

    //equals()方法, 用来比较两个对象是否相同的.
    /*//自定义版的重写equals()方法, 过程理解即可.
    //假设id属性值相同, 两个对象就是同一个对象.
    public boolean equals(Object obj) {  //s1.equals(s2)
        *//*
            this: 谁调用, this就表示谁.   s1
            obj : s2
         *//*
        //向下转型
        Student s2 = (Student)obj;
        return this.id == s2.id;
    }*/

    //通过快捷键的方式生成, 步骤掌握, 代码理解.
    @Override
    public boolean equals(Object o) {  //s1.equals(s2);
        //this: s1   o: s2
        //比较两个对象的地址值是否相同, 提高效率.
        //补充: 如果if语句控制的语句体只有一行代码,那么{}可以省略不写.
        if (this == o)
            return true;
        //判断要比较的两个对象是否是同一个类型的对象, 提高程序的健壮性.
        if (o == null || getClass() != o.getClass())
            return false;
        //向下转型, 正常的逻辑代码.
        Student student = (Student) o;
        return id == student.id &&
                score == student.score &&
                name.equals(student.name);
    }
}

package cn.itcast.demo2;

/*
    需求: 定义一个标准的JavaBean类, 并在测试类中进行测试.
        学生类: Student
            属性: id(编号), name(名字), score(成绩)

     注意:
        实际开发中, 我们把两个对象的各个属性值都相同的情况下, 才会认为这两个对象是同一个对象.
 */
public class Test {
    public static void main(String[] args) {
        //测试toString()方法.
        //创建学生类的对象.
        Student s1 = new Student(1, "欧阳修", 66);
        //输出语句直接打印对象, 默认调用了该对象的toString()方法.
        System.out.println(s1);
        System.out.println(s1.toString());

        //测试equals()方法,  s1.equals(s2);
        Student s2 = new Student(1, "欧阳修", 66);
        boolean b1 = s1.equals(s2);
        System.out.println(b1);
    }
}

在这里插入图片描述
通过快捷键的方式生成equals方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值