Java构造器,构造器重载

本文深入探讨Java中构造器的基础语法,包括构造器的作用、如何初始化对象属性,以及构造器的重载。通过示例代码演示构造器如何在不同场景下灵活运用,帮助开发者更高效地实现对象初始化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

构造器一些基础语法见前面的笔记


l  构造器:

作用:

  当创建一个对象的时候系统会初始化对象属性,如果没有给对象属性赋值那么它就是默认值,构造器的作用就是初始化(就是赋值)这个对象属性的值,这就是的构造器作用。

 

  构造器主要用于被其他方法调用,用以返回该类的实例,因而通常把构造器设置成public访问权限,从而允许系统中任何位置的类来创建该类的对象。除非不想让其他类创建该类的对象就不要用public。

 

·如果你没有提供构造器,系统默认带有一个不带参数的构造器,但是当你显示的创建了一个构造器后系统则不提供默认的构造器了,你可以自己在显示的添加一个不带参数的构造器。



例子:

 

public class ConstructorTest

{

         publicString name;

         publicint count;

 

         publicConstructorTest(String name, int count)  //构造器

         {

                   this.name= name;

                   this.count= count;

         }

 

         publicstatic void main(String[] args)

         {

                   ConstructorTestcon = new ConstructorTest("Fengqiang",111);                  //第一次给构造器传值,name=Fengqiang, count=111

                   System.out.println(con.name);

                   System.out.println(con.count);

 

                   ConstructorTestcon1 = new ConstructorTest("Nina",222);                  //第二次给构造器传值,name=”Nina”,count=222 ,现在就是利用构造器方便给对象属性初始化了,这就是构造器的作用。

                   System.out.println(con1.name);

                   System.out.println(con1.count);

         }

}

 

 


l  构造器重载

  构造器名字相同都跟类名一样,参数(参数个数或类型)不相同我们就说这是构造器重载。当你要多次初始化不同数量的对象属性时候可以使用构造器重载,因为这样给对象属性赋值方便些。

 

例子:

 

 

public class ConstructorTest

{

         publicString name;

         publicint count;

 

         publicConstructorTest(String name)

         {

                   this.name= name;

                   this.count= count;

         }

 

         publicConstructorTest(String name, int count)

         {

                   this.name= name;

                   this.count= count;

         }

 

         publicstatic void main(String[] args)

         {

                   ConstructorTestcon = new ConstructorTest("Nina");

                   System.out.println(con.name);

                   System.out.println(con.count);

 

                   ConstructorTestcon1 = new ConstructorTest("Fengqiang",333);

                   System.out.println(con1.name);

                   System.out.println(con1.count);

         }

}

 

 

·构造器B代码,包含构造器A的所有代码,用this调用相应的构造器的初始化代码。

 

语法: this(参数列表)

 

作用:

   使用this调用另一个重载的构造器只能在构造器中使用,且必须作为构造器执行体的第一条语句。使用this调用重载的构造器时,系统根据this括号中的实际参数调用与之对应的形式参数列表的重载构造器。首先这样可以少些代码,其次当一个构造器中的代码修改后,不需要修改其他重载构造器中的代码。

 

软件程序规则:不要把相同的代码书写两次以上。

 

例子:

 


public class ConstructorTest

{

         publicString name;

         publicint count;

         publicdouble weight;

 

         publicConstructorTest(String name)

         {

                   this.name= name;

         }

 

         publicConstructorTest(String name, int count)

         {

                   this(name);               //调用形式参数列表为name的重载构造器初始化代码。

                   this.count= count;

         }

 

         publicConstructorTest(String name, int count, double weight)

         {

                   this(name,count);           //调用形式参数列表为name,count的重载构造器初始化代码。

                   this.weight= weight;

         }

 

         publicstatic void main(String[] args)

         {

                   ConstructorTestcon = new ConstructorTest("Nina");

                   System.out.println(con.name);

                  System.out.println(con.count);

                   System.out.println(con.weight);

                   System.out.println("");

 

                   ConstructorTestcon1 = new ConstructorTest("Fengqiang",333);

                   System.out.println(con1.name);

                   System.out.println(con1.count);

                   System.out.println(con1.weight);

                   System.out.println("");

 

                   ConstructorTestcon2 = new ConstructorTest("okay",333,1.2345);

                   System.out.println(con2.name);

                   System.out.println(con2.count);

                   System.out.println(con2.weight);

         }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值