java学习笔记->构造方法

4 篇文章 0 订阅

java构造方法是用来干什么的?

  • 构造方法是用来在类中初始化对象的
public class Computer{
    //创建了一个电脑类
    
    public Computer(){    //public Computer 就是类Computer的构造方法
        //用构造方法创建类的对象
        System.out.println("这是一种无参构造方法");
    }
}

构造方法的定义

在创建构造方法时,我们要注意一下几点:

  • 构造方法的名称要与类名相同,比如:
public class Ipad{
    //创建了一个平板类
    
    public Ipad(){    //public Ipad 就是类Ipad的构造方法
        //用构造方法创建类的对象
        System.out.println("这是一种正确的构造方法");
    }
}

public class Ipad{
    //创建了一个平板类
    
    public Computer(){ //public Computer的名称与类名Ipad不相同,属于错误的构造方法定义
        System.out.println("这是一种错误的构造方法");
    }
}
  • 构造方法没有返回值,所以构造方法不能被static、final、synchronized、abstract 和 native(类似于 abstract)修饰。 这里注意public void也没有返回值,但是不能用于构造方法的定义

无参构造方法与有参构造犯法

  • 二者的区别即有无参数,如:
public class Ipad{
    public Ipad(){
        //无参数构造方法
    }
    public Ipad(int num){
        //有参构造方法,参数为num
    }
}
  • 无参构造方法与有参构造方法的使用区别在下面会讲到,这里只需要知道二者在定义上的区别和认识一下即可。

如何使用构造方法?

在创建类时,如果我们,没有定义任何的构造方法,那么java虚拟机会默认帮我们创建一个无参构造方法,构造方法无论是有参还是无参,都是在mian方法中使用的,具体如何使用,就边看代码边解释吧

  • 没有定义任何构造方法时:
public class Ipad{
    //当我们没有定义任何构造方法时,java虚拟机会默认帮我们创建一个无参构造犯法
    String name_0;
    public static void main(String[] args){
        //无参构造方法需要在main方法中使用new来调用构造方法
        Ipad name_1 = new Ipad();
        name_1.name_0 = "这是一个java虚拟机默认创建的无参构造方法";
            System.out.println(name_1.name_0);
    }
}

运行后得到的结果:在这里插入图片描述

  • 自定义了无参构造方法时:
public class Ipad {
    //定义一个无参构造方法,让其输出这是一个自定义的无参构造方法
    public Ipad(){
        System.out.println("这是一个自定义的无参构造方法");
    }
    public static void main(String[] args){
        //无参构造方法需要在main方法中使用new来调用构造方法
        Ipad pr = new Ipad();
        //因为定义的构造方法已经有我们需要输出的语句,所以在main方法中不再需要写输出语句,直接调用即可
        pr.Ipad();
    }
}

运行后得到的结果:在这里插入图片描述

  • 定义有参构造方法时:

所谓有参构造方法,就是方法带有参数,类似C语言中的函数参数

import java.util.Scanner;
public class Ipad{
    //定义一个有参构造方法,参数在main方法输入,在自定义的有参构造方法中输出
    public Ipad(int number){
        System.out.println("参数number的值为"+number);
    }
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        int num = input.nextInt();
        //有参构造方法同样也需要在main方法中使用new来调用构造方法,不同的是,必须在括号内加入参数,否则编译器会报错
        Ipad pr = new Ipad(num);
    }
}

运行后得到的结果:在这里插入图片描述

当上诉代码中Ipad pr = new Ipad(num);写成Ipad pr = new Ipad();时,编译器会报错,因为缺少了相应的参数:在这里插入图片描述

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值