Object类,泛型,is_a关系,逻辑与.或

一.Object类

对于 Object 类型的学习,就相当于人类的女娲,是一切类的根源。

着重说的三个方法:

        1.        equals 方法,目前官方的标准库里已有 150 中往上的 equals 比较方法,但是我们也可以自己定义比较的内容。 equals 方法主要用于比较一个对象是否是等于另外的一个对象。

这里,equals 方法是通过比较 对象的内容来是否相等,通常,对于我们自定义的类,还需要我们去重载;

而 "==" 用于比较两个引用类型的对象是否指向同一个内存地址,也就是说它比较的是对象的引用(内存地址),这通常用于比较基本类型 。

        2.        hashCode() 方法,就是返回整数作为对象的唯一的标识符,独一无二的一个标志,可以用来快速的找到所要的对象,可以配合着 equals () 方法使用来比较两个对象是否相等。

        3.        toString() 方法,我的理解就是将最后的内容以字符串的样式输出,不管是基本数据类型(int ,double,...)还是其它的。当然如果是自定义的类,就需要自己去重载了,重载使输出自己想输出的内容和样式。

二.泛型

1.基本概念

 C++学习的时候,记得 泛型 就是不给出具体的数据类型,等使用什么类型的数据,就定义类型 改为什么类型。

这里 Java 也类似,

ArrayList<E>()  数组列表,我将其理解为动态数组,你可以随意的增删查改其内容,但要用对方法(方法:add(),get(),...),E 就是我们自定义的类型,但是E不可以是基本数据类型,只能是类,那基本数据类型,就需要用到包装类(Integer,Long,Float,...)。较好的方便性,就是牺牲了速度,所以ArrayList<Integer> 相比于 int[] 效率很低,因此只用于小型集合,因为较小的集合我们操作的快捷与方便更重要。

2.类型擦除

Java 中,泛型的类型擦除(Type Erasure)是指在编译时,编译器会移除泛型信息,使得在运行时无法获取到具体的类型。

举例有:

泛型类和接口

  • 当你定义一个泛型类或接口时,编译器会在编译阶段将泛型参数替换为它的边界类型(如果有的话),或者替换为 Object 类型(如果没有指定边界)。
    public class Box<T> {
        private T item;
    }
    

    (边界类型:就是泛型的限定类型。)

    public <T extends Number & Comparable<T>> void process(T number) {
        // T 必须是 Number 的子类,同时实现 Comparable 接口
    }
    

类型擦除的结果是,泛型在运行时会失去类型信息,无法进行类型检查和强制转换。

类型擦除是指泛型在编译时的处理方式,即泛型类型信息在运行时被移除,替换为其原始类型。这意味着即使你在定义对象时提供了具体的类型,类型擦除仍然会发生,

三.继承.小知识点

"is_a" 关系,一个子类(或派生类)被视为一种特定类型的父类(或基类)。这样说可能有点别扭。

这里假设父类包含 变量 a ,方法 b ,方法 c 。

然后我们想定义一个其子类1想要包含,变量 a,方法 b ,方法 c ,方法 d 。这里子类包含父类所有的变量和方法,即子类的对象也是(超类)父类的对象,就说是满足 " is_a " 关系。

如果我们定义一个子类2包含,变量 a ,方法 b ,变量 e ,方法 d。这里就用不到方法 c ,那么继承的时候就会占空间,又用不到,就不是 " is_a 关系 " 。 

这里 "is_a" 关系主要是提醒我们在继承时,注意父类与子类的关系是否适合继承。如果相似点太少,就不要在继承了,毕竟继承的作用是少写代码,让我们不必去重复的造轮子,而是在别人造的轮子的前提下,去造自己的车子。

四.逻辑"与","或"

如果有&&,与||的联合使用,假设A&&B||C,B会与A先结合成A&&B,或C;而不是A&&B或A&&C,呜呜,在判断条件很多的时候,尤其要注意这点,非常会埋坑,还不好找到,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值