前四章 第五章 第六章单元测验总结

float类型,赋值小数必须加上f后缀,整数可加可不加f后缀。

编译错误,显示:The local variable rectangle may not have been initialized
对象rectangular需要实例化

byte范围:-128 - 127
直接赋值时超出范围就会编译错误,如果赋值超出了范围,但强制转换为(byte)类型,则会按标准范围往前或往后移。
例如:byte b = (byte)129,超出了最大值127,按标准范围,它再往前移两位就是-127

MyNumber类定义了带参的构造函数,编译器就不会再自动加上空的不带参构造函数,所以代码 MyNumber obj1 = new MyNumber();会出现编译错误

子类继承父类时,会先自动调用父类的不带参的构造函数。本题中父类定义了带参的构造函数,因此编译器不会自动定义不带参的构造函数。而实例化子类时,子类会先调用父类的不带参的构造函数,因此会出现编译错误的情况。

本题中,Pencil为父类,RubberPencil为子类,父类转换为子类是不可以的。
当RubberPencil p = new Pencil();程序会直接编译错误:Type mismatch: cannot convert from Pencil to RubberPencil
当((RubberPencil) p)时,程序编译会通过,但是运行时会抛出异常:java.lang.ClassCastException: class Pencil cannot be cast to class RubberPencil (Pencil and RubberPencil are in unnamed module of loader 'app')

静态成员变量通常也叫做类变量,因为它不从属于任何对象。非静态的成员变量,也叫做实例变量,是从属于某一个具体的对象。
方法中的临时变量是没有初始化的,在使用之前必须初始化。而类成员变量默认是有初始值的。
对象成员变量默认值是null

NumTest.id是一个静态变量,所有的NumTest对象都共享同一个。所以在c对象创建完成后,NumTest.id为0.

执行main函数时,会首先加载StaticTest(因为main函数就在StaticTest类中)。
按顺序执行static块(StaticTest、ChildTest),再执行匿名块,最后执行构造函数。
任意一个类的一个静态块代码在整个生命周期里面只执行一次。

浙公网安备 33010602011771号