APP下载

Java中的构造方法

2017-07-29刘妍东

科教导刊·电子版 2017年18期
关键词:构造方法测试

刘妍东

摘 要 构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和其他方法一样也可以重载。

关键词 java 构造方法 测试

中图分类号:TP311 文献标识码:A

1概念

构造方法是专门用于创建对象的方法,通常执行对成员变量赋值等初始化操作。构造方法有3个特性,一是一种特殊的成员方法,二是方法名与类名一致,三是方法定义中无返回值类型。我们先看一下构造方法的格式,中括号是可选项,修饰符为访问控制修饰符,如public,代表的是公共的方法。后面直接是方法名,要求方法名与类名一致,括号中是参数,根据需要可选。大括号中方法体内容主要为成员变量赋值。

[修饰符] 方法名([参数])

{//方法体}

2应用举例

我们通过一个列子来看一下构造方法的定义和使用。首先我们定义一个公共的构造方法,方法名与类名一致,括号中无参数,方法体为对radius成员变量赋值为5,则圆半径为5。在主方法中,注释掉为成员赋值语句。我们看一下运行结果,同样是78.5。

public class Circle{double radius;public Circle}

public Circle2 (double x){radius=x;}

public double CalArea( ){return 3.14*radius*radius;}

Public static void main(String args){Circle c2=new Circle(5);System.out.println("c2:"+c2.CalArea;}

那这半径的值是怎么传递的呢?我们看一下这一句,new关键字后面的Circle括号,其实就是调用的构造方法。我们把不带参数的构造方法称之为默认的构造方法,同样我们把默认构造方法成员变量也应该赋值为默认值。或者什么都不写也自动赋为默认值。默认值半径为0,运行结果面积也为0。

构造方法我们可以定义多个,如我们定义一个带参数的构造方法,方法名与类名一致,带有一个double类型的参数。这样参数可以为double类型的成员变量赋值。定义一个c2对象,调用带参数的构造方法,参数为2,调用求面积方法看一下运行结果。第一个是半径为默认值0的面积,第二个是半径为指定值2的面积。

在上一个例子中只有一个成员变量,当类中存在多个成员变量时,应该如何定义构造方法呢。我们来看第二个例子。

在person类中,有5个成员变量,如果没有写构造方法,其实类中已经存在默认的构造方法了,一个成员方法outValue输出所有成员变量的值。通过定义对象调用默认的构造方法,再调用outValue方法输出所有值,我们看一下运行结果。运行结果中,都为默认值,数值型的为0,其他为null。

public class Person{String name,sex;int age;double height,weight;

public void outValue( ) {System.out.println("姓名:"+name+" 性别:"+sex+" 年龄:"+age+" 身高:"+height+" 体重:"+weight);}

public static void main(String args[]){Person p1=new Person();p1.outValue();}

运行结果:姓名:null 性别:null 年龄:0 身高:0.0 体重:0.0

下面我们来定义构造方法,只要显式定义构造方法,则默认的构造方法就消失了,所以我们需要重新定义一下。我们再定义一个带参数的构造方法,参数的数据类型与成员变量的数据类型一定要一致。如给成员变量name赋值。我们定义对象p2,调用带一个参数的构造方法测试一下。参数值为字符串“张”。调用outValue方法看一下运行结果。

public class Person2{String name, sex;int age;double height, weight;Person2}

Person2(String n){·€╪ame=n;}

Person2(String n,String s,int a,double h,double w){name=n;sex=s;age=a;height=h;weight=w;public void outValue( ) { System.out.println("姓名:"+name+" 性别:"+sex+" 年龄:"+age+" 身高:"+height+" 體重:"+weight);}

public static void main(String args[]){Person2 p1=new Person2();p1.outValue();Person2 p2=new Person2("zhang");p2.outValue();;Person2 p3=new Person2("王五","男",19,170,50);p3.outValue();}

在第二行运行结果中,姓名值为zhang,其它未赋值的为默认值。

我们用同样的方法定义第三个构造方法,参数为name和age赋值。数据类型要一一对应。生成对象p3测试一下。调用的构造方法带两个参数,看一下运行结果,姓名和年龄,有值,其它为默认值。

运行结果:姓名:null 性别:null 年龄:0 身高:0.0 体重:0.0。 姓名:zhang 性别:null 年龄:0 身高:0.0 体重:0.0。姓名:王五 性别:男 年龄:19 身高:170.0 体重:50.0

3总结反思

回忆一下构造方法的概念,构造方法是专门用于创建对象的方法,构造方法名与类名一致,且无返回值类型。在没有定义构造方法的类中,有默认的构造方法,所有成员值为默认值。如果显式定义了构造方法,则默认的构造方法就取消了。下面大家来完成Person类的其他构造方法并测试一下吧。

猜你喜欢

构造方法测试
DC-DC变换器分层级构造方法
幽默大测试
“摄问”测试
“摄问”测试
“摄问”测试
《梦溪笔谈》“甲子纳音”构造方法的数学分析
几乎最佳屏蔽二进序列偶构造方法
汉语新术语构造方法的优先选择