翻过了一座山,别慌,后面还有一座
Java中的初始化与清理
-
重载时参数传入的影响
当重载时传入的参数类型不是构造函数中的参数类型,Java中会对类型进行转换。当传入的参数类型较大时,就会进行窄化操作。
当重载时传入的参数类型较小时,实际的参数类型会得到提升,char类型参数可以直接提升至int类型 -
当没有在类中定义构造器时,可以使用
new Class();
如若类中已有对相关构造器的声明,则需要使用对应参数的构造方法,而不能在使用默认的无参构造器
-
类中this的用法,this在类的内部使用
this可以指明类的方法与数据成员。this可以在构造器中调用其他构造器,但是只能调用一次,调用构造函数只能在构造函数中操作。当函数的传入参数与类本身的数据变量重名时,可以使用this来调用类本身的数据成员 -
static关键字
static关键字可以使类方法通过类名+方法名直接调用,类方法中只能调用static方法,但是非static方法却能调用static方法 -
Java中的垃圾回收与C++中析构函数的区别
析构函数一定会清理对象,但是垃圾回收不一定会清理对象 -
可变参数参数列表
//:java/VarArgs
//To konw about VarArgs
public class VarArgs {
static void printArray(Object... args){
for (Object obj:args){
System.out.print(obj+" ");
}
System.out.println();
}
public static void main(String[] args) {
printArray(1,2,"a","haha");
printArray(new Integer(1),new Character('A'),new Float(1.2));
}
}
可变参数列表可以允许传入空值,列表长度则为0,该特性可以用来控制尾部参数
7. enum枚举类型
枚举类的定义
//:java/MyEnum
//本身具有的方法:ordinal(),values()
public enum MyEnum {
MINGTIAN,ATHOME,GOAWAY,WALKFAR
}
枚举类还能够用到switch当中
public class UseEnum {
public static void main(String[] args) {
MyEnum e=MyEnum.GOAWAY;
System.out.println(e);
switch (e){
case ATHOME:
System.out.println("AtHome");
break;
case GOAWAY:
System.out.println("GoAway");
break;
case WALKFAR:
System.out.println("WalkFar");
break;
case MINGTIAN:
System.out.println("MingTian");
break;
}
}
}