关于java的构造函数
1.构造函数的套路
[修饰符列表] 构造方法名(形式参数列表){方法体;}
2.构造方法的方法名要和类名一样
3.构造方法有啥用—_—?
第一:可以创建对象(new个对象出来谈谈人生)
第二:可以给成员变量赋值,初始化变量
4.构造方法应该如何调用
new +构造方法名(实参)----[堆区开辟空间]
5.如果说一个类没有提供任何构造方法,系统默认给出一个无参数的构造方法
(if you手动提供构造方法,那么系统就不提供,任何的构造方法)
成员变量只有在构造方法调用的时候才会赋值
1.构造函数的套路
[修饰符列表] 构造方法名(形式参数列表){方法体;}
2.构造方法的方法名要和类名一样
3.构造方法有啥用—_—?
第一:可以创建对象(new个对象出来谈谈人生)
第二:可以给成员变量赋值,初始化变量
4.构造方法应该如何调用
new +构造方法名(实参)----[堆区开辟空间]
5.如果说一个类没有提供任何构造方法,系统默认给出一个无参数的构造方法
(if you手动提供构造方法,那么系统就不提供,任何的构造方法)
成员变量只有在构造方法调用的时候才会赋值
*****************
package text1;
public class User {
public static void main(String[] args) {
User1 u = new User1();
User1 u1 = new User1(20);
User1 u2 = new User1("Lucky");
User1 u3 = new User1("Start",38);
System.out.println(u.name);//null
System.out.println(u.age);//0
System.out.println(u1.name);//null
System.out.println(u1.age);//20
System.out.println(u2.name);//lucky
System.out.println(u2.age);//0
System.out.println(u3.name);//start
System.out.println(u3.age);//38
}
}
package text1;
public class User1 {
String name;
int age;
//定义构造方法(构成方法重载)
User1(){
System.out.println("吾皇名Saber");
}
User1(int age){
this.age=age;
}
User1(String name){
this.name=name;
}
User1(String name,int age){
this.age=age;
this.name=name;
}
}
public class User2
{
public static void main(String[] args){
User1 u1 = new User1();
//程序执行到此处,u1不再指向堆中的对象
//该对象变成了垃圾
u1 = null;
System.out.println(u1.name);//空指针异常java.lang.NullPointerException
}
}