面向对象04-构造方法

  1. 构造方法的格式

public class Student{

    修饰符 类名(参数){
        方法体}
}
  1. 构造方法的特点

  • 方法名与类名相同,大小写也要一致

  • 没有返回值类型,连void也没有

  • 没有具体的返回值(不能由returen带回结果数据)

  1. 执行时机

  • 创建对象的时候由虚拟机进行调用,不能手动调用构造方法

  • 每创建一次对象,就会调用一次构造方法

public class Student {
    private String name;
    private int age;
    
    public Student(){
        //空参构造
    }
    public Student(String name,int age){
        //带参数的构造
    }
}
  1. 写代码的时候空参构造和带参构造都要写上

原因:有时候不知道属性值,这时候先用空参构造把对象创建出来,等用户键盘录入值之后,用s.setXxx把值进行赋值

  1. 实参空参案例

public class Student {
    private String name;
    private int age;

    public Student(){
        System.out.println("我执行了吗?");
    }
    public Student(String name,int age){
        this.name = name;
        this.age = age;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    public int getAge(){
        return age;
    }
    public void setAge(int age){
        this.age = age;
    }
}

测试类

public class Test {
    public static void main(String[] args) {
        Student s = new Student();
        Student s1 = new Student("xiaocheng",20);
        System.out.println(s1.getName());
        System.out.println(s1.getAge());

    }
}

运行结果:

我执行了吗?
xiaocheng
20

解释:

测试类的第三行代码,会执行对象中的空参构造

一开始写空参实参不是很熟悉,我自己的感觉就是多写几遍就会形成肌肉记忆

  1. 构造方法的注意事项

  1. 构造方法的定义

  • 如果没有定义构造方法,系统将会给出一个默认的无参数构造方法

  • 如果定义了构造方法,系统将不会再提供默认的构造方法(就是写了有参构造之后,不写无参构造,在main方法中如果写无参数的调用将会报错,简而言之就这样)

  1. 构造方法的重载

  • 带参构造方法,和无参数构造方法,两者方法名相同,但是参数不同,这个叫做构造方法的重载

  1. 推荐的使用方法

  • 无论是否使用,都手动书写无参数构造方法,和带参数的全部构造方法。(感觉最后的这一点,前面的两个可以忽略,但是最好知道这样的情况)

  1. 总结

  1. 构造方法的作用?

  • 创建对象的时候,由虚拟机进行自动调用,给成员变量进行初始化的

  1. 构造方法有几种,其作用分别是什么?

  • 无参数构造方法:初始化对象时,成员变量均采用默认值

  • 有参构造方法:在初始化对象的时候,同样可以为对象进行赋值

  1. 构造方法有哪些注意事项?

  • 参考6

构造方法并不是用来创建对象的

  • 创建对象的时候,虚拟机会自动调用构造方法,作用是给成员变量进行初始化的

  • 真正的创建对象是new关键字的作用

而自动调用方法仅仅是创建对象其中的一步,创建对象是有非常多的步骤的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值