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;
}
}
6 回答
九州编程
TA贡献1785条经验 获得超4个赞
当你显示 的写了 构造器 。 是不会生成 默认构造器的。
添加 就可以了 Person(){
}
注意
当一个类你重写了构造器 一定要重写 为空的 构造器。
因为有些框架 在反射创建对象的时候 会去找这个默认的构造器。
还有那 Test() 方法请修改为test().
达令说
TA贡献1821条经验 获得超6个赞
Person类的带参数的构造方法覆盖了默认的构造方法。
注:默认的构造方法是没有参数的
所以如果这么用:Person p1=new Person();
需要在Person类指定无参的构造器。或者直接去掉带参数的构造器。
牧羊人nacy
TA贡献1862条经验 获得超7个赞
因为你在Person类中定义了构造函数,所以默认的构造函数Person()就不会创建了,而是采用你自定义的构造函数。
你也可以用函数重载,再写一个构造函数Person().
添加回答
举报
0/150
提交
取消