Java类的构造方法

来自CloudWiki
Cloud17讨论 | 贡献2018年3月4日 (日) 07:52的版本 (创建页面,内容为“===类的构造方法=== *每次在创建实例变量,对类中的所有变量都要初始化是很乏味的。如果在一个对象最初被创建时就把对它…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

类的构造方法

  • 每次在创建实例变量,对类中的所有变量都要初始化是很乏味的。如果在一个对象最初被创建时就把对它的设置做好,那样的话,程序将更简单并且更简明。Java允许对象在创建时进行初始化,初始化的实现是靠构造函数来完成的。
  • 创建类的对象时,使用new关键字和一个与类名相同的方法来完成,这个方法是在实例化过程中被调用的,称之为构造方法。构造方法区别于普通的方法,有几个明显的特点:
  1. 它的名字必须与它所在的类的名字完全相同。
  2. 不返回任何数据类型,也不需要使用void声明。
  3. 它的作用是创建对象并初始化成员变量。
  4. 在创建对象时,系统会自动调用类的构造方法。
  5. 构造方法一般都用 public来声明,这样才能在程序任意位置创建对象。
  6. 每个类至少有一个构造方法。如果不写构造方法,Java 将提供一个默认的不带参的方法体为空的构造方法。
  • 构造方法定义格式:
[访问权限] 类名称([参数1,参数2,……]) {
     //程序语句 ;
     //构造方法没有返回值
 }

【经验】

  • 如果类中显性的定义了构造方法,那么系统不再提供默认的不带参的方法体为空的构造方法。若对一个已完成的程序进行扩展,因某种需要而添加了一个类的构造方法,由于很多其他类原先使用默认构造方法,这势必会导致找不到构造方法的错误。解决的方法就是把默认的构造方法显性的写出来。
  • 当构造方法定义完毕后就可以通过创建对象来对属性进行初始化操作。一般情况下需要结合new实例化操作,使用传递实参的形式进行。

【实例3-4】使用构造方法对Person类的两个属性进行初始化,并打印各个对象的属性值。

public class Person {
	String name;
	int age;
	//默认的构造方法需要显性的写出来
	public Person(){
	}
	//带参的构造方法来初始化属性 
	public Person(String myName,int myAge){ 
		name= myName;
		age= myAge;
	}
}
public class TestNewPerson {
	public static void main(String[] args){
		//通过new操作并传入实参来实现属性的初始化和对象的实例化
		Person p1=new Person ("张三",20); 
		Person p2=new Person ("李四",30);
		System.out.println("我是:"+p1.name+",今年:"+p1.age+"岁");
		System.out.println("我是:"+p2.name+",今年:"+p2.age+"岁");
	}
}

程序运行结果如下:

我是:张三,今年:20岁
我是:李四,今年:30岁

返回 Java程序设计