构造方法(构造函数、构造器)
/*
* 关于Java类的构造函数
*
* 1.构造方法语法:
* [修饰符列表] 构造方法名(形式参数列表){
* 方法体;
* }
*
* 2.构造方法的方法名必须与类名一致
*
* 3.构造方法的作用:
* (1).创建对象
* (2).给成员变量赋值(初始化成员变量)
*
* 4.构造方法应该如何调用
* new 构造方法名(实参);//在堆中开辟空间存储对象
*
* 5.当类中没有写任何构造方法时,系统会默认提供一个无参的构造方法
* 如果已经手动的提供了构造方法,系统不会在提供任何构造方法
*
* 6.成员变量到底什么时候赋值
* 只有在调用构造方法时,才会给成员变量赋值
*/
package d构造方法;
public class User {
//属性 实例变量 非静态变量 成员变量
//Feild
String name;
int age;
//构造方法 Constructor(以下构造方法构成了方法重载)
public User(){//构造方法没有返回值
/*
* 此处构造方法没有参数,但此处有隐形语句
* name=null;
* age=0; 即在构造方法被调用时系统默认赋值
*/
}
User(String _name){//public可以省略
name=_name;//默认赋值age=0;
//加_name是为了区分成员变量与局部变量
//在调用构造方法时让人更容易看懂将值赋给成员变量
}
User(int _age){
age=_age;//默认赋值name=null;
}
User(int _age,String _name){
age=_age;
name=_name;
}
}
package d构造方法;
public class Test01 {
public static void main(String[] args){
//创建User类型的对象
User i1 = new User();
User i2 = new User("陈圆圆");
User i3 = new User(28);
User i4 = new User(28,"陈圆圆");
System.out.println(i1.name);//null
System.out.println(i1.age);//0
System.out.println(i2.name);//陈圆圆
System.out.println(i2.age);//0
System.out.println(i3.name);//null
System.out.println(i3.age);//28
System.out.println(i4.name);//陈圆圆
System.out.println(i4.age);//28
}
}