Java 继承、多态、ArrayList、枚举
admin
2024-01-17 18:29:55
0

继承

Java中只有公共继承,没有私有继承和保护继承

多态

C++中如果希望实现动态绑定,需要将成员函数声明为virtual,而在Java中,动态绑定是默认的行为。

若不希望一个方法是虚拟的,可以将其标记为final

强制类型转换

  • 只能在继承层次内进行强制类型转换
  • 在将超类强制转换位子类之前,应该使用instanceof进行检查

尽量少用强制类型转换,如果转换失败会抛出ClassCastException异常,而没有捕获ClassCastException异常的话,会使程序终止

重写equals方法的建议

  1. 参数命名为otherObject。
  2. 检测this和otherObject是否相等(只是优化)
if(this == otherObject) return true;
  1. 检测otherObject是否为null
if(otherObject == null) return false;
  1. 比较this与otherObject的类

    1. 若equals语义在子类中改变,则使用getClass检测。
    if(getClass() != otherObject.getClass()) return false;
    
    1. 若在所有子类中equals语义相同,则使用instanceof检测。
    if(!(otherObject instanceof ClassName)) return false;
    
  2. 将otherObject强制转化为相应类类型的变量

ClassName other = (ClassName) otherObject;
  1. 根据相等性概念要求来比较
return field1 == other.field1 && field2 == other.field2 && ......;

String getName() 可以返回这个类的名字

Class getSuperclass() 可以返回这个类的超类

Class.forName(className) 获取类名对应的Class对象

ArrayList

import java.util.ArrayList;public class C531 {public static void main(String[] args) {// 设置数组初始容量// 创建ArrayList时,若能估计出数组可能存储的元素数量,就可以在填充数组之前调用ensureCapacity方法// 或者将初始容量直接传入构造器。这样前100次调用不会因为数组扩容带来额外的时空开销。ArrayList arrayList1 = new ArrayList<>();arrayList1.ensureCapacity(100);ArrayList arrayList2 = new ArrayList<>(100);// 添加元素arrayList1.add("hi");arrayList1.add(1, "study?"); // 将元素插入到指定位置,并后移其他元素System.out.println(arrayList1);// 访问元素System.out.println(arrayList1.get(0));// 修改元素System.out.println(arrayList1.set(0, "hi what hi")); // 会返回之前的元素内容arrayList1.set(1, "study!");System.out.println(arrayList1);// 删除元素arrayList1.remove(0);// 将后面的元素前移}
}

枚举

static Enum valueOf (Class enumClass, String name) 返回给定类中有指定名字的枚举常量

String toString() 返回枚举常量名

int ordinal() 返回枚举常量在enum声明中的位置,位置从0开始计数

int compareTo(E other) 枚举常量出现在other之前便返回负数,相等则返回0,否则返回整数。

public enum C56 {SMALL("s"), MEDIUM("M"), LARGE("L");private String size;// 构造函数必须为privateprivate C56(String s) {this.size = s;}public String getSize() {return size;}
}

相关内容

热门资讯

安卓双系统内存卡,安卓双系统内... 你有没有想过,为什么你的安卓手机有时候会卡得像蜗牛一样?其实,这跟你的内存卡有着千丝万缕的关系呢!今...
安卓系统怎么取消双卡,安卓系统... 手机里的双卡功能,有时候真是让人又爱又恨。有时候,你可能会觉得两个卡槽太占地方,或者一个卡槽的流量用...
安卓系统被篡改怎么修复,快速修... 手机突然变得不听使唤了?安卓系统被篡改,是不是让你心头一紧?别慌,今天就来手把手教你如何修复安卓系统...
倩女幽魂ios系统和安卓系统,... 你有没有玩过倩女幽魂这款游戏呢?它可是近年来非常火爆的一款手游,无论是倩女幽魂ios系统还是安卓系统...
现在安卓手机什么系统,揭秘最新... 你有没有发现,现在走在街上,几乎每个人手里都拿着一部安卓手机?那么,问题来了,现在安卓手机都运行着什...
安卓系统能校准坐标吗,坐标定位... 你有没有想过,你的安卓手机里的地图导航是不是有时候会“迷路”?别急,今天就来聊聊这个话题:安卓系统能...
王者荣耀安卓系统进不去,王者荣... 最近是不是有不少王者荣耀的安卓玩家遇到了一个让人头疼的问题——进不去游戏?别急,今天就来给你详细解析...
c11系统是安卓系统吗,揭秘其... 你有没有听说过C11系统?是不是好奇它是不是安卓系统的一员呢?今天,就让我带你一探究竟,揭开这个神秘...
安卓系统上有没有safari,... 你有没有想过,在安卓系统上,我们能不能也像在苹果手机上那样,使用Safari浏览器呢?这可是个让人好...
小米是安卓系统的吗,引领智能生... 亲爱的读者,你是否曾好奇过,那些在我们生活中无处不在的小米手机,它们到底是不是安卓系统的呢?今天,就...
Windows11安卓子系统 亲爱的读者们,你是否也像我一样,对Windows 11的新功能充满了好奇和期待?今天,我要和你聊聊一...
苹果系统怎么登录安卓号 你是不是也有过这样的烦恼?手机里装了各种应用,账号密码记不住,想换个手机系统用用,却发现账号绑定在另...
安卓系统相册总有相片,揭秘“总... 你有没有发现,不管你的安卓手机里存了多少照片,相册里总有那么几张“常驻嘉宾”呢?这些照片仿佛有魔力,...
g1安卓系统拆解,G1安卓系统... 你有没有想过,手机里的安卓系统其实就像一个神秘的盒子,里面藏着无数的秘密?今天,就让我带你一起拆解这...
现在安卓系统多久不卡,多久不卡... 你有没有发现,手机用久了,尤其是安卓系统,有时候就像老牛拉车一样,慢吞吞的,让人有点抓狂。那么,现在...
塞班系统会被安卓取代吗,未来将... 塞班系统,这个曾经手机界的王者,如今却面临着被安卓系统取代的危机。那么,塞班系统真的会被安卓取代吗?...
换壁纸怎么换安卓系统,安卓系统... 手机壁纸看腻了?想要给安卓系统换个新面貌?别急,跟着我一步步来,保证让你的手机焕然一新!一、解锁壁纸...
鸿蒙系统是安卓11吗,揭秘其与... 你有没有听说最近华为推出的鸿蒙系统?是不是好奇它和安卓11有什么关系呢?别急,今天就来给你揭秘这个谜...
安卓系统谷歌在哪里下,谷歌在安... 你有没有想过,你的安卓手机里那个无所不能的谷歌,它到底藏在哪里呢?别急,今天我就带你一探究竟,揭开安...
安卓系统如何回退老版本,安卓系... 手机用久了,是不是觉得安卓系统越来越卡,功能也越来越不跟得上潮流了呢?别急,今天就来教你怎么把安卓系...