对象的转型:
Animal d = new Dog(); //自动向上转型
Dog d2 = (Dog)d; //强制向下转型
final关键字:
1.修饰变量:被它修饰的变量不可改变。一旦赋了初值,就不能被重新赋值
2.修饰方法:该方法不可被子类重写,但是可以被重载
3.修饰类:修饰的类不能被继承。比如:Math、String等。
数组:
数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量
两种声明方式:
type[] arr_name;
type arr_name[];
1.声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关
2.声明一个数组的时候并没有数组真正被创建。
3.构造一个数组,必须指定长度
若是对象数组,则数组内存的是引用类型(即相应对象的地址),并非把对象直接放里边
数组初始化:
1.静态初始化 int[] a = {2, 4, 65}; User b = {new User(1001, "张三"), new User(1002, "李四")};
2.动态初始化 int[] a= new int[3];(先分配空间)a[0] = 1;(再给数组赋值) User b = new User[3];b[0] = new User(1, "小马");
3.默认初始化 int[] a = new int[3];默认给数组的元素进行赋值,为0
foreach循环:
专门用于读取数组或集合中所有的元素,不能修改元素的值
int[] a = new int[];
for(int temp:a){
System.out.println(temp);
}
for (arrUser temp:arr03){
System.out.println(temp.getName());
}