Java 构造器

一、构造器
1、在Java 中,使用new关键是调用构造器,从而返回该类的实例
也就是说: 构造方法是定义在Java类中的一个用来初始化对象的方法,是创建对象的根本途径
注意: 构造方法与类同名且没有返回值

2、语法
修饰符 构造方法名 (形参列表) { //在这里面初始化代码 }
注意:
1) 修饰符: 只能有public/private/protected,一般设置成public。
2) 构造方法名: 必须与类名字相同
3) 构造器不能定义返回值,不能使用void定义构造器没有返回值。如果为构造器定义了返回值类型,或使用void 定义构造器没有返回值,编译时不会出错,但Java会把这个所谓的构造器当做普通方法来处理

3、分类
把没有参数的构造方法叫无参构造方法,反之称为有参的构造方法

4、关于构造方法的几个注意点
1)如果我们没有指定无参构造方法,系统会为该类提供一个默认的构造器(无参构造器)
一旦我们为一个类提供了构造器,系统将不会该类提默认无参的供构造器,如果我把无参的构造方法屏蔽, 则不能调用无参的构造方法,会编译不通过。
2) 有参构造方法: 初始化成员变量的值
3) 有参的构造方法和无参构造方法是可以并存的(方法重载)
4) 构造方法的重载: 方法名相同,单参数不同地方多个方法,调用时会根据不同的参数参数选择相应的方法
5) 构造方法 不但可以给属性赋值,还可以保证给对象的属性赋一个合理的值

4、构造器与super的使用

5、 构造器之间的相互调用

二、例子
定义一个类,名字为Telephone

public class Telephone {

    double screenSise;

    double memorySize;


    // 方法重载

    //无参数构造方法
    public Telephone(){

        System.out.println("无参数构造方法run"+" screenSize:"+screenSise+ "   memorySize:"+memorySize);

    }

    // 有参构造方法
    public Telephone(double newScreenSize,double newMemorySize){

        //给对象的实例变量赋值
        if(newScreenSize < 3.5){
            screenSise = 3.5;
            System.out.println("输入参数有问题,自动赋值成3.5");
        }else{
            screenSise = newScreenSize; 
        }

        memorySize = newMemorySize;
        System.out.println("有参的构造方法run!"+" screenSize:"+screenSise+ "   memorySize:"+memorySize);


    }
}

在定义一个类,取名为StructMethod,并勾选main函数

public class StructMethod {

    public static void main(String[] args) {

    //通过无参的构造方法可以创建对象
    Telephone iphone6 = new Telephone();

    //通过有参的构造方法也可创建对象,并给对象的实例变量赋值
    Telephone iphones = new Telephone(1.0,32.0);    
    }

}

输出结果:

无参数构造方法run screenSize:0.0   memorySize:0.0
输入参数有问题,自动赋值成3.5
有参的构造方法run! screenSize:3.5   memorySize:32.0

注意 :

关于构造方法的重载问题,如果一个类发生构造方法重载,在有参构造方法里面 this(); 调用的是无参构造方法。

demo

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值