Java构造代码块,静态代码块原理与用法实例分析
作者:随风行云 发布时间:2023-11-03 09:03:45
标签:Java,构造代码块,静态代码块
本文实例讲述了Java构造代码块,静态代码块原理与用法。分享给大家供大家参考,具体如下:
本文内容:
局部代码块
构造代码块
静态代码块
补充
首发日期:2018-03-28
局部代码块:
局部代码块用于限制变量的生命周期,如果希望某些变量在某一过程之后直接失效而不希望被后面继续操作时,可以使用局部变量来限制变量的生命周期带局部代码块中
构造代码块:
构造函数只对对应的对象进行初始化,构造代码块给类的所有对象进行初始化。
由于构造代码块给类的所有对象进行初始化,所以对于每个对象都要初始化成一样值的变量,可以防止构造代码块中初始化。
class Person{
String gender;
int age;
{ //构造代码块
System.out.println("构造代码块运行阶段");
gender="男";
}
Person(){//构造函数
System.out.println("构造函数Person()运行阶段");
}
Person(int age){//构造函数
System.out.println("构造函数Person(int age)运行阶段");
this.age=age;
}
}
public class Demo {
public static void main(String[] args) {
Person p1=new Person();
System.out.println(p1.gender);
Person p2=new Person(18);
System.out.println(p2.gender);
}
}
上述代码结果:
构造代码块运行阶段
构造函数Person()运行阶段
男
构造代码块运行阶段
构造函数Person(int age)运行阶段
男
构造代码块的好处的例子:
构造函数版本:
构造代码块版本:
静态代码块:
静态代码块与构造代码块不同的是,它只执行一次,用于对整个类进行初始化,通常是对类变量进行初始化处理。
静态代码块中只能修改类变量。
静态代码块的执行比主函数要早。
有时候因为静态代码块只执行一次。所以有时候会用来“显示程序流程”。
class Person{
static String gender;
int age;
static {
System.out.println("静态代码块执行完成");
gender="男";//更改的变量只能是类变量
}
Person(){//构造函数
System.out.println("构造函数Person()运行阶段");
}
Person(int age){//构造函数
System.out.println("构造函数Person(int age)运行阶段");
this.age=age;
}
}
public class Demo {
public static void main(String[] args) {
Person p1=new Person();
System.out.println(p1.gender);
Person p2=new Person(18);
System.out.println(p2.gender);
}
}
上述代码执行结果:
静态代码块执行完成
构造函数Person()运行阶段
男
构造函数Person(int age)运行阶段
男
补充:
各个初始化块的运行顺序:静态代码块-》构造代码块-》构造方法
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。
来源:https://www.cnblogs.com/progor/p/8665664.html


猜你喜欢
- 本文实例为大家分享了java实现斗地主发牌的具体代码,供大家参考,具体内容如下参考斗地主的游戏规则,完成一个发牌的功能(54张牌,考虑点数,
- MyBatis提供了 * 接口,我们可以实现自己的 * ,将其作为一个plugin装入到SqlSessionFactory中。 首先要说的是
- 背景Java8的stream接口极大地减少了for循环写法的复杂性,stream提供了map/reduce/collect等一系列聚合接口,
- Controller简介Controller控制器,是MVC中的部分C,为什么是部分呢?因为此处的控制器主要负责功能处理部分:1、收集、验证
- 小菜今年计算机专业大四了,学了不少软件开发方面的东西,也学着编了些小程序,踌躇满志,一心要找一个好单位。当投递了无数份简历后,终于收到了一个
- #define Testusing System;namespace Wrox.ProCSharp.ParameterTestSample.
- 如下所示:public static void main(String[] args) {String str1 = "刘烨,孙坚
- Java 中的引用类型:强引用、软引用、弱引用和虚引用强引用如 Object object = new Object(),那 object
- 本文实例为大家分享了Java从服务端下载Excel模板文件的具体实现代码,供大家参考,具体内容如下方法一 (2021年01月更新)生成exc
- 本文实例为大家分享了C#使用NPOI设置Excel下拉选项的具体代码,供大家参考,具体内容如下最近在做一个导出模板的功能,需要限制用户的某些
- 本文内容介绍通过Java程序在Excel表格中根据数据来创建透视表。环境准备需要使用Excel类库工具—Free Spire.XLS for
- Android性能优化-布局优化今天,继续Android性能优化 一 编码细节优化。编码细节,对于程序的运行效率也是有很多的影响的
- Spring是什么?Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其
- 背景:今天新生成一个springboot项目,然而启动日志,还有mybatis的详细日志无法打印出来,自写程序中打印的日志可以输出;网上找了
- C#Process OutputDataReceived事件不触发问题描述项目需要用cmd调用其它软件,实时获取软件处理结果,并根据获取到的
- 在java.lang.Runtime.exec的使用中,我们经常会用到将重定向命令执行的输入/结果或者将错误信息读取出来.那么,在使用过程中
- Java中常用关键字:与数据类型相关(10)与流程控制相关(13)if: 表示条件判断,一般用法if(关系表达式),后跟else或
- 本篇文章介绍自定义View配合属性动画来实现如下的效果实现思路挺简单:画一个半透明的圆实现两种动画效果,点击时扩散和不点击时扩散回收使用线程
- 前提在Windows下进行数据处理的时候最常见的情况莫过于读取Microsoft的Excel文件了,Excel的普及率惊人,是事实上的标准。
- 一、前言CountDownLatch维护了一个计数器(还是是state字段),调用countDown方法会将计数器减1,调用await方法会