构造器的名称必须保持和类名完全一致,包括大小写;
构造器默认没有修饰符,或者使用 public、private、protected 进行修饰,但是不能使用 static、final、synchronized、abstract 等进行修饰;
构造器没有返回类型,void 也不行;
不接受任何参数的构造器叫做默认构造器,它的修饰符是 public,内容为空;
每个类至少要有一个构造器,如果一个类没有显式定义构造器,Java 会提供一个默认构造器;如果有明确定义构造器,就不会有默认构造器了(除非显示定义的构造器和默认构造器是一样的);
不同的构造器可以通过参数不同来进行区分,方法如果被重载也一样可以通过参数不同进行区分,另外方法的重载还可以通过返回值来进行区分;
class GouZaoQiOne {
String testStr;
/**
* 构造器名称包括大小写必须和 类名保持一致;
* 构造器默认没有修饰符,或者使用 public、private、protected 进行修饰,
* 但是不能使用 static、final、synchronized、abstract 等进行修饰;
* 构造器没有返回类型,void 也不行;
* @return
*/
GouZaoQiOne() {
System.out.println("This is a default(friendly) GouZao method");
}
//不同的构造器可以通过参数不同来进行区分
GouZaoQiOne(String str) {
System.out.println("This is a new GouZao method with param");
}
}
this 关键字只能在方法内部使用,表示正在执行方法的类的实例对象;
构造器中也可以使用 this,他指向同一个对象中不同参数的另一个构造器;
this调用其他构造器时,代码必须放到第一行,否则会编译错误;
只能使用 this 调用一次其他的构造器;
static 方法不可以使用this对象,因为静态方法不属于类的实例对象;
对象可能不被垃圾回收;
垃圾回收并不等于"析构";
垃圾回收只和内存有关;
finalize() 调用并不会立马触发垃圾回收,而是在下次垃圾回收器干活时会首先调用 finalize() 方法;
如果程序调用了非 Java 程序的本地代码,可能需要在 finalize( 方法中调用释放操作;
几种触发垃圾回收器的方法是: 主动调用 System.gc(); 让程序占用大量内存; 程序退出;
变量初始化顺序由其定义的先后顺序决定,并且变量肯定在所有方法被调用之前被初始化,那么其定义在方法的后面;
可变长参数列表定义格式:String... str , 同意义的还可以是 Obect[] obj;
//String... 定义可变长参数
public void testMethod(String... strings) {
for (String string : strings) {
System.out.println(string);
}
}
//String[] 定义可变长参数
public void testMethod2(String[] strings) {
for (String string : strings) {
System.out.println(string);
}
}
枚举类型关键字是 enum,比如 public enum Test {TEST1, TEST2}
本文作者: sylan215
本文地址: http://www.sylan215.com/
版权声明: 本文首发于公众号「sylan215」,可以随意转载,但必须在明确位置注明出处!