Java基础——构造方法

一、构造方法的定义

默认无参构造是这个样子
public Student(){}
首先,构造方法没有返回值,没有void,其次构造方法的名字和类名是相同的。
其实void也是有返回值,只不过是null(为空)
编译的是 .java文件,完成后是执行 .class文件
执行反编译如下:
//编译
E:\D>javac Demo.java
//反编译
E:\D>javap Demo.class
Compiled from "Demo.java"
public class Demo {
  public Demo();
  public static void main(java.lang.String[]);
}

二、构造方法传参

1.当发现运行结果是不同时,因为创建对象的时候传递的名字不相同,new关键字创建的实例每一个都有属于自己的属性(内存空间)
2.通过构造方法,给每个对象的name赋值了对象的名字,所以创建的实例的名字是不同的
3.传参的是三个方式(初始化成员变量):【1.点name方式 2.set和get方式 3.构造方法】
注:一般情况下如果局部变量不跟成员变量重名的话,方中调用成员变量是可以省略this的(就近原则)
一般情况下,构造方法形参会跟成员变量相同,会表明哪个成员变量赋值(规范)
//学生类
public class Student {
    private String name;
    private int age;
 }
//有参构造
public Student(String name){
    this.name=name;
}
public Student(String name,int age){
    //就近原则,当属性名字和成员变量相同时加this
    this.name=name;
    this.age=age;
}
//无参构造,如果有了有参构造无参构造就失效了
public Student(){}
//赋值传参
Student s1=new Student("zs");
System.out.println(s1.getName());
Student s2=new Student("zs",22);
System.out.println(s2.getName()+","+s2.getAge());
一般来说,我们构造方法作用主要是给成员变量赋值,其他操作尽量不要在构造方法里面操作,除非没有其他方法可以实现

三、总结如下:

1.构造方法名字和类名相同,构造方法没有返回值,不需要void修饰
2.使用new关键字实例化对象时会用到构造方法
3.构造方法的参数与普通方法的参数的用法相同
4.当我们实现了构造方法之后,虚拟机不会赠送无参构造,如果想使用无参构造,只能自己定义
5.构造函数中this的作用和普通函数相同
6.构造方法主要用于给当前构造对象的成员变量赋值

四、构造方法重载

public Student(String name){
    this.name=name;
}
public Student(String name,int age){
    this.name=name;
    this.age=age;
}

五、构造方法相互调用

this.属性名:操作属性
this.方法名:调用方法
this():调用自己的构造函数
public Student(String a){
    //this()调用构造方法
    this(a,0,null,null)
}
public Student(String name,int age,String gender,String password){
    this.name=name;
    this.age=age;
    this.gender;
}

posted @ 2022-10-08 10:41  花海~  阅读(218)  评论(0)    收藏  举报