thinkinjava--5.1-5.7构造器练习

本文深入探讨Java构造器的概念,包括默认构造器与自定义构造器的特点,并通过实例演示了构造器如何初始化类成员变量的过程。此外,还介绍了构造器重载的应用场景。

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

学习内容

Java构造器

1.与类的名字完全相同

2.不接受任何参数的构造器叫“默认构造器”,也可以自定义有参的参数构造器。

两道构造器初始化的练习

3.当有自定义构造器(不管有无参数),编译器就不在帮你自动创建默认构造器。

练习

1.创建一个类,它包含一个未初始化的String引用,验证该引用被java初始化成null。

public class Practice_Constructors {
    private String s;//未被初始化的引用
    public static void main(String args[]) {
         Practice_Constructors p = new Practice_Constructors(); 
         System.out.println(p.s);//在类被初始化的时候调用默认的构造函数,将引用初始化成null
        
    }
}

2.定义一个类,它包含一个在定义时就被初始化的Stirng域,以及另一个通过构造器初始化的String域,这两种有何差异?

public class Practice_Constructors {
    String s1 = new String("abc");//定义时初始化
    Practice_Constructors (){};//默认构造器
    Practice_Constructors(int i) {//带 参数的构造器
       this.s1 = new String("xyz");//初始化参数
    }
    public static void main(String args[]) {//验证入口
        Practice_Constructors p1 =   new Practice_Constructors();
        System.out.println(p1.s1);//abc
    
        Practice_Constructors p2 =   new Practice_Constructors(1);
        System.out.println(p2.s1);//xyz
        
    }
}
//证明:构造函数在对象创建时调用,她会覆盖类定义时初始化的值。3.

3.:创建一个带默认构造器(即无参构造器)的类,在构造器中打印一条消息。为这个类创建一个对象。

4.:为前一个练习的类中添加一个重载构造器,令其接受一个字符串参数,并在构造器中把你自己的消息和接受的参数一起打印出来。

5.创建一个名为Dog的类,它具有重载的bark()方法。此方法应根据不同的基本数据类型进行重载,并根据被调用的版本,打印出不同类型的狗吠(barking),咆哮(howling)等信息。编写main()来调用所有不同的版本的方法

public class Pratice_defaultConstructer {
    public static void main(String args[]) {
 //       Pratice1 p1 = new Pratice1(1);
        Dog dog = new Dog();
        dog.bark(1,"小美");
    }
    
}
class Pratice1{
//练习3:无参构造器
    Pratice1(){
        System.out.println("声明无参的构造器");
    }
//练习4:重载构造器
    Pratice1(int i){
        System.out.println("声明重载带参数的构造器和接收的参数:"+i);
    }
}
//练习5
 class Dog{
  void bark(int i){System.out.println("有"+i+"只狗在叫");};
  void bark(int i,String str){System.out.println("有"+i+"只狗在叫"+",它叫"+str);};
  
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值