构造函数

构造函数

1. 创建对象的语句:Human zhangsan = new Human();

2. 实际上调用了系统自带的方法来构造对象并进行初始化,即构造函数。

3. 构造函数的作用是生成对象,并对对象的实例变量进行初始化。系统自带的默认构造函数是把所有的数字设为0,所有的布尔变量设为false,所有的对象变量设为null

package com.dzh.method;

 

public class Class_Method {

 

public static void main(String[] args) {

Human zhangsan = new Human();

zhangsan.print();//打印出zhangsan的属性的默认值

 

}

 

}

 

class Human {

String name;

char sex;

int age;

String address;

 

public void print() {

System.out.println("name:" + name);

System.out.println("sex:" + sex);

System.out.println("age:" + age);

System.out.println("address:" + address);

}

 

4. 构造函数的特点:名字必须与类名相同且没有返回值类型。

5. 构造函数的主要作用是对对象的变量进行初始化,如果不想把它们都初始化为默认值,就需要自己编写构造函数,通过有参数的构造函数可以把值传递给对象的变量。

6. Human的构造函数定义如下:

public Human(String hname, char hsex, int hage, String haddress) {

name = hname;

sex = hsex;

age = hage;

address = haddress;

}

创建对象时使用如下语句,这样生成对象zhangsan 的属性就被初始化为相应的值。

Human zhangsan = new Human("zhangsan", '男', 20, "北京");

 

 

7. 已经定义了自己的构造函数,Java不再提供默认的构造函数,这时如果再使用默认的构造函数即Human zhangsan =new Human();编译会出错。只能使用程序中提供的构造函数来创建对象。

8. 构造函数的重载:根据不同的需求对构造函数进行重载,利用不同的构造函数进行对象的创建。 因为有的时候并不需要对全部的变量进行初始化,而只对其中的一部分初始化即可。

package com.dzh.method;

 

public class Class_Method {

 

public static void main(String[] args) {

Human lisi = new Human();//调用构造函数1

lisi.print();

Human wangming = new Human("wangming",'女');//调用构造函数2

wangming.print();

Human zhangsan = new Human("zhangsan", '男', 20, "北京");//调用构造函数3

zhangsan.print();

 

}

 

}

 

class Human {

String name;

char sex;

int age;

String address;

//构造函数1

public Human(){

name = null;

sex = ' ';

age = 0;

address = null;

}

//构造函数2

public Human(String hname, char hsex) {

name = hname;

sex = hsex;

}

//构造函数3

public Human(String hname, char hsex, int hage, String haddress) {

name = hname;

sex = hsex;

age = hage;

address = haddress;

}

 

public void print() {

System.out.println("name:" + name);

System.out.println("sex:" + sex);

System.out.println("age:" + age);

System.out.println("address:" + address);

System.out.println("=============");

}

}

 

Human类中提供了3个不同的构造函数以满足构造对象是不同的需要。以上例子看出,创建3个对象分别使用了3个不同的构造函数,起到了不同的效果。Java这个功能在很多情况下非常有用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值