您的位置:首页 > 编程语言 > Java开发

java-深入构造方法

2017-09-25 22:41 309 查看
构造方法之前我们就学过,这次我们用构造方法实例化我们的成员变量,代码如下





结果:



构造方法重载

构造方法也属于方法,是一种特殊的方法,一个没有返回值的方法。既然属于方法,那么它也有方法的重载,到这我们在说一下重载,重载:方法名相同,返回值类型或形参个数不同。构造方法重载代码如下所示:



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);
}


}

结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息