1.一个类至少有一个构造方法,没有声明时,编译时会自动生成一个无参构造方法;
2.一旦声明了一个构造方法,编译就不会再生成默认构造方法;
3.你的问题是Person类里少声明了个无参构造函数。
一下为测试代码:
class Person{
String name;
int age;
public Person(){}
public Person(String name,int age){
this.setName(name);
this.setAge(age);
}
public String getName(){
return name;
}
public void setName(String n){
name=n;
}
public int getAge(){
return age;
}
public void setAge(int a){
age=a;
}
public void speak(){
System.out.println("我的姓名是:"+this.getName()+"我的年龄是"+this.getAge()+"岁");
}
}
/*
public class PersonDemo
{
public static void main(String[] args)
{
Person p = new Person("zhangsan",20);
p.setName("lisi");
p.speak();
new Person();
}
}
*/
public class PersonDemo{
public static void main(String[] args){
Person p=new Person("zhangyu",25);
p.setName("renpan");
p.speak();
//Person p1=new Person();
new Person();
}
}
|