本文作者:sukai

构造法编程(构造法怎么构造)

sukai 03-29 126

Java培训属于高端程序员的培训,一旦成功就业就基本步入了高薪稳定的行列,所以正规的Java培训机构收费都是很高的,一般要经过4-6个月的学习才能从一个Java语言的门外汉达到中级Java工程师的水平,下面武汉达内Java培训专家给大家讲讲构造方法的使用

1、构造方法的特点及定义

构造方法是一种比较特殊的方法,其特殊性主要体现在以下几个方面:①构造方法的方法名与类名相同[2];②构造方法没有返回值类型,在构造方法的方法体里不能出现return语句;③构造方法的调用通常在创建对象时由系统自动调用;④构造方法通常用来初始化类的非静态属性。

一个类中可以定义多个构造方法,既可以不带参数也可以带参数,如:

class Student{

String name;

int age;

Student(){

name="张三";

age=21;}}

public class TestConstructor{

public static void main(String[]args){

Student s1=new Student();

Student s2=new Student();}}

假如一个类中只定义一个无参的构造方法,如上例,那么创建出来的所有对象s1、s2的属性值都一样,这显然不符合实际,为了创建出不同属性值的对象,我们需要添加多个不同参数的构造方法,

class Student{

String name;

int age;

Student(){

name="张三";

age=21;}

Student(String n){

name=n;

age=23;}

Student(String n,int a){

name=n;

age=a;}}

再分别创建对象Student s1=new Student(“张三”,21);Student s2=new Student(“李四”,23);通过传进不同的参数值,就可以创建出不同属性值的对象。一个类中可以包含多个不同的构造方法,在一个构造方法里面可以调用同类其他的构造方法,对同类构造方法的调用,不能使用构造方法名,而是使用关键字this,如上例可以改成如下形式:

class Student{

String name;

int age;

Student(String n,int a){

name=n;

age=a;}

Student(String n){

this(n,23)}

Student(){

this(“张三”,21);}}

如果在一个类中没有定义任何一个构造方法,则系统会自动创建一个参数为空,方法体也为空的默认构造方法,以满足创建对象的需要,但是如果在程序中一旦定义了一个构造方法,系统不会再创建默认的构造方法。

2、子类对父类构造方法的调用

构造方法不能继承,但是在初始化子类对象时,为了确保继承自父类的所有属性被初始化,则在执行子类构造方法之前,一定要先对父类的构造方法进行调用[3]。子类对父类构造方法的调用分2种情况,一种是默认调用,即程序中不体现出来,这种情况下只能调用父类无参的构造方法,如果父类中没有定义无参的构造方法(系统也不创建),那么一定要显式调用。对父类构造方法的调用同样也不能用方法名,而是用super()形式调用。如:

class Art{

Art(){

System.out.println("Art()constructor");}}

class Drawing extends Art{

Drawing(){

System.out.println("Drawing()constructor");}}c

public class Cartoon extends Drawing{

Cartoon(){

System.out.println("Cartoon()constructor");}

public static void main(String[]args){

Cartoon x=new Cartoon();}}

本例的输出结果是Art()constructor,Drawing()con?structor,Cartoon()constructor,很显然,在Cartoon类的构造方法中并没有调用父类Drawing的构造方法,同样在Drawing的构造方法中也没有调用其父类Art的构造方法,这里对父类构造方法的调用是隐含的,是系统自动调用的。而如果把Drawing类的构造方法修改成Drawing (int i){System.out.println("Drawing()constructor");,则在Cartoon的构造方法中会提示找不到符号Drawing()的错误。显然,这里系统调用的是Drawing(),即父类无参的构造方法。而此时Drawing中的带参数的构造方法需要在Cartoon类中用super(6)(带一个任意整数的参数,如1,2,3,…….)来显式调用。

构造法编程(构造法怎么构造)

构造方法是一种特殊的方法,主要完成对象初始化的工作,为了满足创建对象时的不同需求,在同一个类中可以定义多个不同参数的构造方法,即对构造方法进行重载,为了在子类中完成继承自父类的属性的初始化,在创建子类对象时需要首先调用父类的构造方法。

好的方法有很多,想要了解更多,请登录武汉达内http://wh.tedu.cn

阅读
分享