黑马程序员入学blog...

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

问题:要求每个小孩出生都会哭,这份代码有两个构造函数,如果需要每个小孩出生都要哭的话,那么就需要在不同的构造函数中都调用cry()函数,但是这样子的话造成了代码重复问题,那么怎么解决呢?构造代码块。

  1. class Perosn{
  2. private int id;//私有化int型变量id
  3.  
  4. private String name;//私有化String型变量name
  5.  
  6. private int age;//私有化int型变量age
  7.  
  8. {
  9. cry();// 每个Person对象创建出来都会执行这里的代码
  10. }
  11.  
  12. public Perosn(){
  13. cry();
  14. }
  15. public Perosn(int id, String name, int age) {//为变量id,name,age初始化属性
  16. this.id = id;
  17. this.name = name;
  18. this.age = age;
  19. }
  20. public int getId() {//访问Id
  21. return id;
  22. }
  23. public void setId(int id) {//设置id
  24. this.id = id;
  25. }
  26. public String getName() {//访问name
  27. return name;
  28. }
  29. public void setName(String name) {//设置name
  30. this.name = name;
  31. }
  32. public int getAge() {//访问age
  33. return age;
  34. }
  35. public void setAge(int age) {//设置age
  36. this.age = age;
  37. }
  38.  
  39. public void cry(){//哭
  40. System.out.println("哇哇哇....");
  41. }
  42.  
  43. }

P.S.

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

2:构造代码块和构造函数的区别,构造代码块是给所有对象进行统一初始化, 构造函数给对应的对象初始化。

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

例如孩子一出生统一哭

我们来看个完整的实例:

  1. class Boy {
  2.  
  3. String name;
  4. int age;
  5. String gender;
  6. // 构造代码块,给所有对象进行初始化。
  7. {
  8. System.out.println("哭。。。");
  9. }
  10.  
  11. Boy() {
  12. System.out.println("无参构造被调用中");
  13. }
  14.  
  15. Boy(String n, int a, String g) {
  16. name = n;
  17. age = a;
  18. gender = g;
  19. System.out.println("有参构造被调用中");
  20. }
  21.  
  22. void run() {
  23. System.out.println("跑...");
  24. }
  25.  
  26. }
  27.  
  28. class Demo {
  29.  
  30. public static void main(String[] args) {
  31.  
  32. Boy b = new Boy();
  33.  
  34. Boy b2 = new Boy("jack", 1, "男");
  35.  
  36. }
  37. }

运行结果:

哭。。。

无参构造被调用中

哭。。。

有参构造被调用中

只要和构造函数区分开来并且记住它们两的核心作用就好了:

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

构造函数:构造函数给对应的对象初始化。

JAVA_SE基础——30.构造代码块的更多相关文章

  1. 黑马程序员——JAVA基础之构造函数,构造代码块

    ------- android培训.java培训.期待与您交流! ---------- 构造函数特点: 1.  函数名与类名相同 2.  不用定义返回值类型 3.  不可以写return语句 构造函数 ...

  2. 5.1JAVA基础复习——JAVA中的静态代码块、构造代码块、构造函数、局部代码块区别

    构造代码块: 在类中定义可以给所有对象进行初始化.局部代码块: 在方法中定义属性的生命周期.静态代码块: 在类中定义用于给类调用时属性的初始化 构造函数与构造代码块的区别: 构造函数是给对应的对象进行 ...

  3. 【Java基础】2、Java中普通代码块,构造代码块,静态代码块区别及代码示例

    Java中普通代码块,构造代码块,静态代码块区别及代码示例.Java中普通代码块,构造代码块,静态代码块区别及代码示例 执行顺序:静态代码块>静态方法(main方法)>构造代码块>构 ...

  4. 静态代码块、构造代码块、构造方法优先级(重点)-------java基础总结

    package com.mon11.day11; /** * 类说明 : * @author 作者 : chenyanlong * @version 创建时间:2017年11月11日 */ publi ...

  5. 构造代码块----java基础总结

    前言:之前一直不知道构造代码块的意思是什么,只是知道他的具体的表现形式,因为经常在面试题中看到,所以准备好好写写. 作用: 给对象进行初始化,对象一建立就运行,而且优于构造方法运行. 和构造方法的区别 ...

  6. java基础8 构造函数和构造代码块

    一.构造函数 1 构造函数的作用 给对应的对象进行初始化. 2 构造函数的格式 修饰符 函数名(形式参数){ //函数名就是类名 函数体 } 举例说明: class Perosn{ private i ...

  7. java基础之静态代码块,局部代码块,构造代码块区别。

    java中有几种常见的代码块,那怎样区别他们呢? 这里就这些问题,浅谈下我个人的理解. 1.局部代码块 局部代码块,又叫普通代码块.它是作用在方法中的代码块.例如: public void show( ...

  8. 匿名对象 构造方法 重载 构造代码块 this 关键字

    一.匿名对象 1.匿名对象 :没有名字对象 2.匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值,无法获取属性值. 2.匿名对象永远都不可能事一个对象. 3.匿名对象的好处 : 书写简单. ...

  9. java中静态代码块,构造代码块,以及构造方法的执行顺序

    写了许久的代码,却把一些基础的东西都给忘了,今天无聊就顺手写了个,然后测试下,发现跟我记忆中的竟然有些出入,作为一个两年的开发,我感觉自己很失败啊. 父类pojo: public class Pojo ...

随机推荐

  1. WebCracker4.0和monster字典——路由器登陆密码破解工具

    路由器登陆密码破解,很伤cpu的

  2. IPFS:世界正在悄然发生变化

    世界正在悄然发生变化(IPFS) 2015-05-05 Juan Benet 在自己的终端里面敲入了下面的文字: > echo "hello worlds" | ipfs a ...

  3. 解决Centos7本机时间与实际时间相差8小时

    # timedatectl Local -- :: CST Universal -- :: UTC #相差8小时 RTC -- :: Time zone: Asia/Shanghai (CST, +) ...

  4. 笔记:MyBatis 其他特性

    多行结果集映射成Map 如果你有一个映射语句返回多行记录,并且你想以HashMap的形式存储记录的值,使用记录列名作为key值,而记录对应值或为value值.我们可以使用sqlSession.sele ...

  5. java 10 中 var关键字用法

    引用:https://mp.weixin.qq.com/s/n1tcJ0CywSi0j-YycGPwxg what java10引入了局部变量折断 var用于声明局部变量. 如var user=new ...

  6. ping通但打不开网页

    ping通但打不开网页 网页出现: The proxy server is refusing connections Firefox is configured to use a proxy serv ...

  7. 基于 IJKPlayer-concat 协议的视频无缝拼接技术实现

    一.前言 Hi,大家好,我是承香墨影! 开门见山,开篇名义.今天来聊聊如何将多段视频,拼接成一个完整而连续的视频,然后无缝进行播放. 这样的需求应该不算偏门吧? 最简单的就是一些视频 App,会将大段 ...

  8. [poj3904]Sky Code_状态压缩_容斥原理

    Sky Code poj-3904 题目大意:给你n个数,问能选出多少满足题意的组数. 注释:如果一个组数满足题意当且仅当这个组中有且只有4个数,且这4个数的最大公约数是1,$1\le n\le 10 ...

  9. Jmeter 多用户同时登陆

    在做性能测试的时候,很多情况需要多用户同时登录,下单,那怎么实现多用户的同时登录呢 可以通过CSV Data Set Config组件实现参数化登录 1.新建一个存放用户名和密码的文件, 和jmete ...

  10. 如何测试一个WEB的输入框?

    WEB输入框是B/S架构系统中页面使用非常频繁的控件,比如我们登录一个网站,输入 用户名和密码的控件都是输入框,比如使用百度搜索,在输入搜索内容的控件也是输入框,比如网购一个物品,我们需要输入购买的数 ...