java 构造方法学习笔记

    xiaoxiao2023-11-22  167

    首先我们来看代码:`

    public class Test { String name; int age; public static void main(String[] args) { Test test=new Test(); System.out.println(test.name); } }

    构造方法主要是用于给对象的成员进行初始化,在你new Test()的时候就自动给成员变量初始化了,这时name的值为null,引用类型的成员变量在被构造方法初始化的时候他们都被赋了null,那么int 类型就是0(short byte long也是一样),double、float类型就是0.0,char类型是\u0000; 这时候呢我们来讲一下利用构造方法对成员变量进行初始化 不多说 ,看代码`

    public class Test { String name; int age; public Test() { } public Test(String name,int age) { this.name=name; this.age=age; } public static void main(String[] args) { Test test=new Test();//第一种初始化方式,给成员变量赋值都是默认的上面有写 Test test1=new Test("小红",15);//这种赋值方式就是利用构造方法给成员变量赋值 System.out.println(test.name); } }

    那么这个时候呢,就出现一个新的问题,上面这个this是什么意思呢? 一般我们在给变量起名字的时候呢,如果每个变量都是不同的命名的话就会很麻烦, 这个时候呢this关键字就起作用了, this表示当前对象,谁调用这个方法,那么this指的就是这个对象 上图的代码中呢this指的是test1这个对象。

    public class Test { String name; int age; public Test(String name,int age) { this.name=name; this.age=age; } public static void main(String[] args) { Test test=new Test(); Test test1=new Test("小红",15); System.out.println(test.name); System.out.println(test1.name); System.out.println(test1.age); } }

    这个时候我们来看一下,猜一猜这个时候程序的运行结果是什么?

    这个时候程序会报错 因为下面这个带参数的构造函数覆盖了无参的构造函数,所以在写构造函数的时候,一定要先把无参构造函数写好。

    最新回复(0)