什么是构造,什么是构造的重载,怎么复制构造?

 

(一)java中什么是构造方法及其作用

构造方法就是与类同名的那个方法,它的作用是可以用来初始化

 

class Person{
public Person(String n,int a){ //构造方法 
 name = n; 
 age = a;
 System.out.println(n+""+a);
}
 private String name;
 private int age;
public static void main(String[] args){
Person p = new Person("张三",14);//这就是作用
}
}


new一个对象的时候要用到构造函数,例如Hello hello = new Hello();这时调用的是Hello的无参数构造方法;Hello hello = new Hello("hi");这个是调用Hello有参数构造方法,在JAVA中如果不写构造方法的话,会默认加上一个无参数的构造方法,但是如果已经有了一个有参数的构造方法,那么无参数的构造方法就不会默认被加上.如果Hello类中已经有了一个有参数的构造方法,这时再使用 Hello hello = new Hello();来创建对象的时候就会出错,这就是为什么书上要强调写了有参数的构造方法就最好加一个无参数的构造方法.

(二)构造方法(定义、有参、无参、重载)

一、构造方法是什么,有什么用?

构造方法是类的一个特殊的成员,在类实例化时会自动调用。
通过前面的学习,我们知道为一个属性赋值有两种方法:①、直接访问对象属性 ②、通过setXxx()方法
如果想在实例化对象的同时就为这个对象的属性进行赋值,可以通过构造方法来实现

二、构造方法的定义

构造方法三个条件:
①、方法名和类名相同
②、在方法名前面没有返回值类型的声明
③、在方法中不能使用return语句

Person p=new Person( );
//new Person()语句有两个功能
//①实例化Person对象    ②自动调用构造方法Person( )

三、无参构造方法、有参构造方法

class Person{
    public Person( ){
        System.out.println("无参构造方法被调用");
   }    
}

public class Test01{
    public static void main (String [] args ){
        Person p=new Person();//实例化Person对象
    }
}
//该方法是无参的构造方法,即构造方法不接收参数,执行后输出 无参的构造方法被调用了

下面是有参的构造方法


class Person{
    int age;
    //有参构造方法
    public Person (int a){
        age=a;
    }
    public void speak(){
        System.out.println("我今年"+age+"岁");
    }
}

public class Test02{
    public static void main (String [] args){
        Person p=new Person (20);//实例化同时赋值
        p.speak();
    }
}

四、构造方法的重载

像普通方法一样,构造方法也可以重载(参数类型或者参数个数不同)。
在创建对象时,可以通过调用不同的构造方法为不同的属性赋值。

五、构造方法注意事项

java中每一个类都至少有一个构造方法,如果我们没有创建,系统弄会自动为我们创建一个默认的构造方法(无参,方法体中无代码)。
但是只要我们自己定义了构造方法,系统就不会再为我们提供默认的构造方法了。如果我们定义了一个有参的构造方法,最好再定义一个无参的。因为实例化对象的时候,不一定会输入参数,那么没有无参的构造方法,再不输入参数,就会出错。
另外构造方法需要使用public来修饰,因为使用private的话,在别的类中无法实例化。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值