构造方法

构造方法的作用:给对象进行初始化


构造函数的定义的格式:


修饰符  函数名(形式参数){
函数体...
}


注意: 构造代码块的大括号必须位于成员 位置上。

代码块的类别:
1. 构造代码块。
2. 局部代码块.   大括号位于方法之内。  作用:缩短局部 变量 的生命周期,节省一点点内存。
3. 静态代码块  static 


构造函数要注意的细节:

1. 构造函数 是 没有返回值类型的。
2. 构造函数的 函数名必须要与 类名一致
3. 构造函数并不是由我们手动调用的,而是在创建对应的对象时, jvm就会主动调用到对应的构造函数。
4. 如果一个类没有显式的写上一个构造方法时,那么java编译器会为该类 添加一个无参的构造函数的。
5. 如果一个类已经显式的写上一个构造方法时,那么java编译器则 不会再为该类添加 一个无参 的构造方法。

6. 构造函数是 可以在一个类中以函数重载的形式存在多个的。


构造函数与普通 函数的区别:

1. 返回值类型的区别:
1. 构造函数是没有返回值类型 的,
2. 普通函数是有返回值类型的,即使函数没有返回值,返回值类型也要写上void。
2. 函数名的区别:
1. 构造函数的函数名必须要与类名一致,
2. 普通函数的函数名只要符合标识符的命名规则即可。
3. 调用方式的区别:
1. 构造函数是 在创建对象的时候由jvm调用的。
2. 普通函数是由我们使用对象调用的,一个对象可以对象多次普通 的函数,
4. 作用上的区别:
1. 构造函数 的作用用于初始化一个对象。

2. 普通函数是用于描述一类事物的公共行为的。

例:

class Baby{
	
	int id; //身份证
 
	String  name;  //名字

	//构造函数
	public  Baby(int i , String n){
		id  = i;
		name = n;
		System.out.println("baby的属性初始化完毕!!");
	}

	//无参 的构造函数
	public Baby(){
		System.out.println("无参的构造函数被调用了..");
	}

	
	//哭
	public void cry(){
		System.out.println(name+"哭了...");
	}	
}

  构造代码块

构造代码块作用:给所有的对象进行统一的初始化。

根据上面的例子,要求每个小孩出生都会哭,这份代码有两个构造函数,如果需要每个小孩出生都要哭的话,那么就需要在不同的构造函数中都调用cry()函数,但是这样子的话造成了代码重复问题,那么怎么解决呢?这时候我们就需要构造代码块。
public class Person {
    String name;
    int age;
    String gender;
    // 构造代码块,给所有对象进行初始化。
    {
        System.out.println("哭。。。");
    }

    Person() {
        System.out.println("无参构造");
    }

    Person(String n, int a, String g) {
        name = n;
        age = a;
        gender = g;
        System.out.println("有参构造");
    }

    void run() {
        System.out.println("跑...");
    }

    public static void main(String[] args) {
        System.out.println();
        Person b = new Person();

        Person b2 = new Person("jack", 1, "男");

    }
}

输出结果

哭。。。
无参构造
哭。。。
有参构造

作用

1:给对象进行初始化。对象一建立就运行并且优先于构造函数。

2:与构造函数区别

    构造代码块是给所有对象进行统一初始化, 构造函数给对应的对象初始化

    构造代码块的作用:它的作用就是将所有构造方法中公共的信息进行抽取。

    例如孩子一出生就会统一的哭

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值