public class Persontest{
public static void main(String[] args){
Person a = new Person();
Person b = new Person(300);
Person c = new Person(800,22);
//a.person(); 使用编译错误
}
}
class Person{
Person() {
int id = 500;
int age = 20;
System.out.println(id + "--" + age);
}
Person(int _id) {
int id = _id;
int age = 21;
System.out.println(id + "--" + age);
}
Person(int _id, int _age) {
int id = _id;
int age = _age;
System.out.println(id + "--" + age);
}
}
最近在学到构造方法和重载,有上面这么一个小程序,初学,本来想打印id和age,结果在main方法中用的注释中方法,编译出错,不认识“。”方法,后来突然意识到似乎new对象的时候就已经调用构造方法了,去掉注释内容胡编译运行正常,想确认一下到底是不是这样,main方法new对象时是不是就已经调用了Person类中的构造方法,xx.xx();这种调用的是不是类中构造方法以外的其他方法时使用,还有,之前想打印id和age,因为不懂,直接在main方法中new对象后就直接a.person;System.out.println(a);打印出来是tostring方法的person@哈希值,新人自学,没有人教,请各位讲解一下!! |
|