java-深入构造方法

构造方法之前我们就学过,这次我们用构造方法实例化我们的成员变量,代码如下

这里写图片描述
这里写图片描述
结果:
这里写图片描述
构造方法重载
构造方法也属于方法,是一种特殊的方法,一个没有返回值的方法。既然属于方法,那么它也有方法的重载,到这我们在说一下重载,重载:方法名相同,返回值类型或形参个数不同。构造方法重载代码如下所示:
这里写图片描述
this关键字
之前我们学过this的其他使用
第一种 指 当前类.成员变·量 ,在get,set里最常用
第二种 指当前类.方法 当前类调用其他方法
this的第三种使用方式,必须写在构造方法中,否则报错,提示找不到
代码如下:
这里写图片描述
this(12,”lisi”)这个主要是干了一件调用Test3()这个构造方法,把参数传递了过去,我们在写一个show方法打印一下数据。
这里写图片描述
在Test中调用
这里写图片描述
结果:
这里写图片描述
构造方法进行数据初始化
之前说过,在new类,对此类进行初始化,其实调用的是类里面无参的构造方法,但是里面获取的数据都是默认值。构造器除此之外我们用最多的用法是对其数据进行初始化。
例:
public class Person {
//两个成员变量name age
private String name;
private int age;
/*
* 构造方法
* @param name 姓名
* @param age 年龄
*/
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}

public static void main(String[] args) {
    Person p=new Person("李四",12);
    System.out.println("name的值是:"+p.name);
    System.out.println("age的值是:"+p.age);
}

}
结果
这里写图片描述
注意:一旦我们创建有参数的构造方法,我们就不能通过new Person()来创建实例了,因为该类不再包含无参的构造方法。
构造方法的重载
构造方法也属于方法,方法有重载,那么构造方法也有。同一个类中可以有多个构造方法,多个构造方法的形参不同既成为构造方法重载。
例如:
public class Person {
//两个成员变量name age
private String name;
private int age;
/*
* 构造方法
* @param name 姓名
* @param age 年龄
*/
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}

/***
 * 无参构造方法
 */
public Person(){
    System.out.println("这是父类的构造方法");
}
public static void main(String[] args) {
    Person p=new Person("李四",12);
    System.out.println("name的值是:"+p.name);
    System.out.println("age的值是:"+p.age);
    Person p1=new Person();
    System.out.println("name的值是:"+p1.name);
    System.out.println("age的值是:"+p1.age);
}

}
结果:
这里写图片描述
3.构造方法this的使用
之前可以使用this调用当前类的成员变量和方法(),除此之外this还可以调用当前类的构造方法,前提是必须在构造方法中使用。
例:
public class Person {
// 两个成员变量name age
private String name;
private int age;

/**
 * 一个参数的构造方法
 * 
 * @param age
 *            年龄
 */
public Person(int age) {
    this.age = age;
}

/***
 * 两个参数的构造方法
 * 
 * @param name
 *            姓名
 * @param age
 *            年龄
 */
public Person(String name, int age) {
    this(age);
    this.name = name;
}

/***
 * 无参构造方法
 */
public Person() {
    System.out.println("这是父类的构造方法");
}

public static void main(String[] args) {
    Person p = new Person(12);
    System.out.println("p.name的值是:" + p.name);
    System.out.println("p.age的值是:" + p.age);
    Person p1 = new Person("李四",14);
    System.out.println("p1.name的值是:" + p1.name);
    System.out.println("p1.age的值是:" + p1.age);
}

}

结果:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq524752841/article/details/78090364