ホームページ  >  に質問  >  本文

Java中,构造方法,创建两个对象的时候,找不到符号了。。自学,求解。。

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;
    }
}
天蓬老师天蓬老师2743日前470

全員に返信(6)返信します

  • 怪我咯

    怪我咯2017-04-18 10:56:30

    デフォルトのコンストラクターを書いていません

    返事
    0
  • 怪我咯

    怪我咯2017-04-18 10:56:30

    上記の質問に答えると、Java がアクセス修飾子を記述せずにプライベートになったのはいつですか?偽の Java を使用しているのでしょうか?

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:56:30

    書かれたコンストラクターを表示するとき。 デフォルトのコンストラクターは生成されません。
    「人()」を追加するだけです{

    リーリー

    注意
    クラスのコンストラクターをオーバーライドするときは、空のコンストラクターをオーバーライドする必要があります。
    一部のフレームワークは、リフレクションを通じてオブジェクトを作成するときにこのデフォルトのコンストラクターを探すためです。

    また、Test()メソッドをtest()に変更してください。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-18 10:56:30

    Person クラスのパラメーター化されたコンストラクターは、デフォルトのコンストラクターをオーバーライドします。
    注: デフォルトのコンストラクターにはパラメーターがありません
    したがって、次のように使用すると: Person p1=new Person();
    パラメーターのないコンストラクターを Person クラスで指定する必要があります。または、パラメーターを含むコンストラクターを単に削除します。

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:56:30

    コンストラクターを Person クラスで定義したため、デフォルトのコンストラクター Person() は作成されませんが、カスタム コンストラクターが使用されます。
    関数のオーバーロードを使用して、コンストラクター Person() を作成することもできます。

    返事
    0
  • PHPz

    PHPz2017-04-18 10:56:30

    追記: ピンインは使用しないでください

    返事
    0
  • キャンセル返事