标题: 构造重载请教 [打印本页] 作者: a348639336 时间: 2015-7-24 10:58 标题: 构造重载请教 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@哈希值,新人自学,没有人教,请各位讲解一下!!作者: wzg76777 时间: 2015-7-24 12:08
1.在创建对象时new后面 会直接调用构造方法,如果括号内没有参数,调用的就是无参的构造方法,有参数就会调用对应的构造方法,注意类中必须要有无参的构造方法,没定义构造方法时系统会默认定义无参的构造方法,有定义构造方法时系统不会再提供无参的构造方法,建议任何时候都自己定义一下无参的构造方法,老毕的视频应该有讲,可以去回顾一下
2.这个跟内存有关,a中存储的是对象的地址值,可以回顾下视频加深下印象作者: 章浩 时间: 2015-7-24 12:23
亲········区分一下构造函数和一般方法吧
· 构造函数是用来初始化对象的,构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用;
· 而一般的方法是在程序执行到它的时候被调用的;作者: a348639336 时间: 2015-7-24 17:07