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;}
}

相关内容

热门资讯

热点推荐“牛至尊到底有没有透视... 您好,牛至尊这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打牌...
热点推荐“昭通棋乐麻将到底有没... 您好,昭通棋乐麻将这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏...
热点推荐“pokerworld... 热点推荐“pokerworld到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器...
热点推荐“逍遥卡五星到底有没有... 您好:逍遥卡五星确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会...
热点推荐“讯奇麻将到底有没有透... 您好,讯奇麻将这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
热点推荐“蜀南到底有没有透视挂... 亲,蜀南这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,蜀南的开挂软件,名称叫蜀南...
热点推荐“全民比鸡到底有没有透... 热点推荐“全民比鸡到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...
热点推荐“四川家园到底有没有透... 热点推荐“四川家园到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”的a...
热点推荐“哈灵麻将到底有没有透... 热点推荐“哈灵麻将到底有没有透视挂吗”原来真的有挂;原来确实真的有挂(需添加指定薇7198902获取...
热点推荐“快乐联盟到底有没有透... 快乐联盟这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这款游...
热点推荐“开云棋牌到底有没有透... 亲,开云棋牌这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,开云棋牌的开挂软件,名...
热点推荐“大赢家卡五星到底有没... 亲,大赢家卡五星这款游戏可以开挂的,确实是有挂的,。但是开挂要下载第三方辅助软件,大赢家卡五星的开挂...
热点推荐“开心联盟到底有没有透... 您好,开心联盟这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
热点推荐“万载麻将到底有没有透... 热点推荐“万载麻将到底有没有透视挂吗”原来真的有挂;原来确实真的有挂(需添加指定薇7198902获取...
热点推荐“奇趣互娱到底有没有透... 您好,奇趣互娱这款游戏可以开挂的,确实是有挂的,需要了解加微{7198902}很多玩家在这款游戏中打...
热点推荐“韵味广东麻将到底有没... 韵味广东麻将这个游戏其实有挂的,确实是有挂的,需要了解加客服微信:【7198902】, 很多玩家在这...
热点推荐“欢乐广东麻将到底有没... 热点推荐“欢乐广东麻将到底有没有透视挂吗”原来真的有挂是一款可以让一直输的玩家,快速成为一个“必胜”...
热点推荐“牛小乐到底有没有透视... 您好:牛小乐确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发现...
热点推荐“斗棋到底有没有透视挂... 热点推荐“斗棋到底有没有透视挂吗”原来真的有挂1、让任何用户在无需AI插件第三方神器的情况下就能够完...
热点推荐“头脑风暴到底有没有透... 您好:头脑风暴确实真的有挂,软件加微信【7198902】确实是有挂的,很多玩家在这款游戏中打牌都会发...