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;
}
}
结果
注意:一旦我们创建有参数的构造方法,我们就不能通过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;
}
}
结果:
3.构造方法this的使用
之前可以使用this调用当前类的成员变量和方法(),除此之外this还可以调用当前类的构造方法,前提是必须在构造方法中使用。
例:
public class Person {
// 两个成员变量name age
private String name;
private int age;
}
结果:
结果:
构造方法重载
构造方法也属于方法,是一种特殊的方法,一个没有返回值的方法。既然属于方法,那么它也有方法的重载,到这我们在说一下重载,重载:方法名相同,返回值类型或形参个数不同。构造方法重载代码如下所示:
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); }
}
结果:
相关文章推荐
- java中的构造方法的深入了解
- Java语言深入:构造方法调用浅谈
- java中的构造方法的深入了解
- 深入Java中文问题及最优解决方法--上
- 深入java的equals方法,怎么比较两个对象的内容是否相等?对象的内容指的是什么?
- 深入Java中文问题及最优解决方法
- 动态构造 Java 类的一种方法: javassist (1)
- Java进阶:深入equals方法对象相等比较
- Java中构造方法的迷惑
- 动态构造 Java 类的一种方法: ClassLoader 的设计 (4)
- java 构造方法
- 深入Java中文问题及最优解决方法-下
- java[继承][构造方法]
- Java中用反射通过构造方法创建实例
- 动态构造 Java 类的一种方法: javassist (2)
- 深入Java中文问题及最优解决方法--上
- Java中子类与父类的构造方法的调用关系
- 深入Java中文问题及最优解决方法
- 深入Java中文问题及最优解决方法--上
- 深入Java中文问题及最优解决方法-下(转)