day_15 Object、包、权限修饰符、状态修饰符、设计模式(singleton)

本文详细介绍了Java中的Object常用方法,包括equals、hashCode和toString的实现与用途。此外,还探讨了包的概念、权限修饰符(如final和static)的作用以及状态修饰符。在设计模式部分,特别提到了单例模式的实现和优点。通过这些内容,有助于深化对Java编程基础的理解。
摘要由CSDN通过智能技术生成

object

所有的类都直接或间接继承于object类,是所有类的父类

在这里插入图片描述

object常用方法

在这里插入图片描述

equals

equals比较两个对象是否相等
实现原理

object实现

在这里插入图片描述

String实现

在这里插入图片描述

因为所有的类直接或间接继承了Object,因此所有的类都有Object类中提供的方法。
equals本质上比较两个对象的地址是否相同,String中比较的是两个字符串的内容
原因就在于String重写了equals方法

以后的类中,我们一般都要重写equals方法,自行定义比较规则
    //重写继承自Object的 equals
    @Override
    public boolean equals(Object obj){
   
        Student student = (Student)obj;
        // 如果两个学生对象的姓名相同 则认为是同一个人 此时 返回true
        if(this.getName().equals(student.getName()) && this.getAge() == student.getAge()){
   //这句使用的equals是String类的equals
            return true;
        }else{
   
            return false;
        }
    }
}

也可以使用IDEA的快捷生成方式来快速重写equals

hashCode

public int hashCode() 返回对象的哈希码值,只要在执行Java应用程序时多次在同一个对象上调用该方法,hashCode方法必须始终返回相同的整数

如果根据equals(Object)方法 两个对象相等,则在两个对象中的每个对象上调用,hashCode方法必须产生相同的整数结果

在这里插入图片描述

toString

在这里插入图片描述
重写toString

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

包指的是磁盘上的目录

作用:对类的分类管理

包的命名

1. 所有字母都采用小写
2. 一般采用公司域名的逆序
	baidu.com------->com.baidu
	会在后面加上项目或模块名称

在这里插入图片描述
当一个类放在包中的时候

package cn.lanqiao;

public class Animal {
      
}

在探讨类名的时候,此时有两种称谓:

简单类名:Animal
全类名:包名 + 类名  cn.lanqiao.Animal

带包编译

第一种情况

在这里插入图片描述

第二中情况

在这里插入图片描述

运行:java 包名 + 类名 (注意后边不要.class)

导包操作:

导包操作是针对和当前类不在同一个包下的类,当需要调用的时候,则需要先进行导包,然后再使用
import cn.lanqiao.Animal;
import java.util.Scanner;
import java.util.*;

jdk的常见包

package java.lang
位于该包下的类,在使用的时候不需要做导入操作。
jvm启动的时候,默认将java.lang包下的类全部加载

java.awt和javax.swing这两个包中的类作用相似,都是和图形化界面相关
java.math	该包下存放的都是与数学运算相关的类
java.net		与网络编程相关
java.io		与文件传输相关
java.time	时间相关
java.util	存放的都是一些工具类

静态导入

用于导入指定类的静态属性和静态方法,这样我们可以直接使用静态属性和静态方法。
import static java.lang.Math.PI;
import static java.util.Arrays.sort;
import java.util.Scanner;

权限修饰符

在这里插入图片描述

int num;  // 此时的访问权限为默认的访问权限

状态修饰符

  1. final

     Final:最终的
     Final:可以修饰 类 变量 方法
    

    final修饰一个变量,此时变量就是一个常量;

     当常量为基本类型时,此时常量的值不能修改。只能赋值一次
     当常量为引用类型时,此时常量的引用地址不能变,单时引用对象的内容可以改变
    

    在这里插入图片描述

    final修饰一个类

     当一个类被final修饰,则这个类不能被继承,不能有子类,被称为太监类
    

    final修饰方法

     使用final修饰的方法不能被重写
    

    在这里插入图片描述

  2. static(静态)

    static关键字时静态的意思,可以修饰成员方法,成员变量

     使用范围:
     	属性、方法、代码块、内部
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值