搜索

首页  >  问答  >  正文

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;
    }
}
天蓬老师天蓬老师2804 天前492

全部回复(6)我来回复

  • 怪我咯

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

    没写默认构造器啊

    回复
    0
  • 怪我咯

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

    回复一下楼上,什么时候java不写访问修饰符变成private了?难道我用的是假java?

    回复
    0
  • PHP中文网

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

    当你显示 的写了 构造器 。 是不会生成 默认构造器的。
    添加 就可以了 Person(){

      
    }
    

    注意
    当一个类你重写了构造器 一定要重写 为空的 构造器。
    因为有些框架 在反射创建对象的时候 会去找这个默认的构造器。

    还有那 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
  • 取消回复