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;
}
}
デフォルトのコンストラクターを書いていません
上記の質問に答えると、Java がアクセス修飾子を記述せずにプライベートになったのはいつですか?偽の Java を使用しているのでしょうか?
書かれたコンストラクターを表示するとき。 デフォルトのコンストラクターは生成されません。
リーリー「人()」を追加するだけです{
注意
クラスのコンストラクターをオーバーライドするときは、空のコンストラクターをオーバーライドする必要があります。
一部のフレームワークは、リフレクションを通じてオブジェクトを作成するときにこのデフォルトのコンストラクターを探すためです。
また、Test()メソッドをtest()に変更してください。
Person クラスのパラメーター化されたコンストラクターは、デフォルトのコンストラクターをオーバーライドします。
注: デフォルトのコンストラクターにはパラメーターがありません
したがって、次のように使用すると: Person p1=new Person();
パラメーターのないコンストラクターを Person クラスで指定する必要があります。または、パラメーターを含むコンストラクターを単に削除します。
コンストラクターを Person クラスで定義したため、デフォルトのコンストラクター Person() は作成されませんが、カスタム コンストラクターが使用されます。
関数のオーバーロードを使用して、コンストラクター Person() を作成することもできます。
追記: ピンインは使用しないでください