public class Lan{
public static void main(String []agrs){
/*
Person p1=new Person();
p1.age=8;
p1.Test();
System.out.println("第一个为"+p1.age);
创建这一个的时候就不行,提示找不到符号,在“Person p1=new Person()”的new这里提示的,去掉可就没问题。。
*/
Person p2=new Person(7,"小五");
p2.Test();
p2.jisuan();
System.out.println("第二个为"+p2.age);
}
}
class Person{
int age;
String name;
public void jisuan()
{
int i=2;
System.out.println(i);
}
public void Test(){
System.out.println("做测试1");
}
Person(int age,String name){
this.age=age;
this.name=name;
}
}
PHP中文网2017-04-18 10:56:30
當你顯示 的寫了 構造器 。 是不會產生 預設構造器的。
新增 就可以了 Person(){
}
注意
當一個類別你重寫了構造器 一定要重寫 為空的 構造器。
因為有些框架 在反射創建物件的時候 會去找這個預設的建構器。
還有那 Test() 方法請修改為test().
PHP中文网2017-04-18 10:56:30
Person類別的帶參數的建構方法覆寫了預設的建構方法。
註:預設的建構方法是沒有參數的
所以如果這麼用:Person p1=new Person();
需要在Person類別中指定無參的建構子。或直接去掉帶參數的構造器。
天蓬老师2017-04-18 10:56:30
因為你在Person類別中定義了建構函數,所以預設的建構子Person()就不會被創建了,而是採用你自訂的建構子。
你也可以用函數重載,再寫一個建構子Person().