当前位置: 首页 > news >正文

广东网站建设968长沙公司网站设计报价

广东网站建设968,长沙公司网站设计报价,dede我的网站,大图网 网站文章目录代码块的分类1、静态代码块#xff08;也叫静态块、静态初始化块#xff09;2、构造代码块#xff08;也叫构造初始化块#xff09;3、代码块#xff08;又叫普通代码块、初始化块#xff09;执行顺序的代码测试继承中各代码块的执行顺序前言 在Java中#xff0… 文章目录代码块的分类1、静态代码块也叫静态块、静态初始化块2、构造代码块也叫构造初始化块3、代码块又叫普通代码块、初始化块执行顺序的代码测试继承中各代码块的执行顺序前言 在Java中Static静态代码块、构造代码块、普通代码块、构造函数的执行顺序是一个java学习者必须掌握的基础本篇博客旨在让大家能清除了解它们之间的执行顺序。 代码块的分类 基本上代码块分为三种Static静态代码块、构造代码块、普通代码块 代码块执行顺序静态代码块—— 构造代码块 —— 构造函数—— 普通代码块 继承中代码块执行顺序父类静态块——子类静态块——父类代码块——父类构造器——子类代码块——子类构造器 1、静态代码块也叫静态块、静态初始化块 Java静态代码块中的代码会在类加载JVM时运行且只被执行一次也就是说这些代码不需要实例化类就能够被调用。一般情况下,如果有些代码必须在项目启动的时候就执行的时候,就需要使用静态代码块所以静态块常用来执行类属性的初始化 关于Static静态代码块的五个小结点 1、Java静态代码块中的代码会在类加载JVM时运行且只被执行一次 2、静态块常用来执行类属性的初始化 3、静态块优先于各种代码块以及构造函数如果一个类中有多个静态代码块会按照书写顺序依次执行 4、静态代码块可以定义在类的任何地方中除了方法体中【这里的方法体是任何方法体】 5、静态代码块不能访问普通变量 针对4中描述静态代码块不能存在任何方法体中的原因其实也是很简单由于普通方法是通过加载类然后new出实例化对象通过对象才能运行这个方法而静态代码块只需要加载类之后就能运行了。对于静态方法在类加载的时候静态方法也已经加载了但是我们必须要通过类名或者对象名才能访问也就是说相比于静态代码块静态代码块是自己主动运行的而静态方法是被动调用运行的。不管是哪种方法我们需要明确静态代码块的存在在类加载的时候就自动运行了而放在不管是普通方法还是静态方法中都是不能自动运行的。 针对5中描述静态代码块不能访问普通变量原因同样简单。普通变量是被实例对象调用的静态代码块中都不存在其实例对象谈何调用变量 Static静态代码块使用格式 static{.............. } 1232、构造代码块也叫构造初始化块 听这名字就知道和构造方法离不开没错但是还是和构造方法有着本质区别我们都知道没个方法中都可以有很多构造方法每创建一个对象其构造方法就执行一个而一个构造方法可以创建N个对象构造方法就比较“高冷”了而构造代码块就比较“舔狗”了只要该类实例了一个对象构造代码就执行一次利用每次创建对象的时候都会提前调用一次构造代码块特性所以它可以做统计创建对象的次数功能。当然构造代码块用的相对少 构造代码块小结 1、构造代码块在创建对象时被调用每次创建对象都会调用一次 2、构造代码块优先于构造函数执行同时构造代码块的运行依赖于构造函数 3、构造代码块在类中定义 针对2中的“依赖”可理解为如果不实例化对象也就是不执行构造方法构造代码块是不会执行的 3、代码块又叫普通代码块、初始化块 代码块小结 1、普通代码块定义在方法体中 2、普通代码块与构造代码块的格式一致都是{} 3、普通代码块与构造代码块唯一能直接看出的区别是构造代码块是在类中定义的而普通代码块是在方法体中定义的 执行顺序的代码测试 以上已经讲得差不多了开始上代码了 package com.gx.initializationblock;public class Initializationblock {int intA;int intB;public Initializationblock() {System.out.println(无参构造器00000000);}public Initializationblock(int a) {System.out.println(一个参数的构造器);}{intA 10;intB 15;System.out.println(构造初始化块11111);}{System.out.println(构造初始化块22222);}{System.out.println(构造初始化块33333);}//静态初始化块static {System.out.println(静态初始化块01010101);}static {System.out.println(静态初始化块0202020202);}public void method(){{System.out.println(普通初始化块);}} }测试demo package com.gx.initializationblock;/* 初始化块一* 因为静态块是在类的初始化阶段完成的* 因此在创建某个类的第二个对象时该类的静态块就不会执行了* * 在单个类中静态初始化块初始化块构造器* 多个类的继承中初始化块、静态初始化块、构造器的执行顺序 在继承中先后执行父类A的静态块父类B的静态块最后子类的静态块然后再执行父类A的非静态块和构造器然后是B类的非静态块和构造器最后执行子类的非静态块和构造器*/ public class Demo1 {public static void main(String[] args) {Initializationblock initializationblock new Initializationblock();initializationblock.method();System.out.println(------------);//多打印几个对象的目的是好看出Static静态代码块只执行一次Initializationblock initializationblock2 new Initializationblock(); //因为静态块是在类的初始化阶段完成的因此在创建某个类的第二个对象时该类的静态块就不会执行了initializationblock2.method();Initializationblock initializationblock3 new Initializationblock();initializationblock3.method();} }打印结果 静态初始化块01010101 静态初始化块0202020202 构造初始化块11111 构造初始化块22222 构造初始化块33333 无参构造器00000000 普通初始化块 ------------ 构造初始化块11111 构造初始化块22222 构造初始化块33333 无参构造器00000000 普通初始化块 构造初始化块11111 构造初始化块22222 构造初始化块33333 无参构造器00000000 普通初始化块得出结论执行顺序静态代码块 构造代码块 构造函数 普通代码块 继承中各代码块的执行顺序 啥都不说了直接撸代码继承关系为 BaseThree—— BaseTwo—— BaseOne BaseOne类 package com.gx.initializationblock;public class BaseOne {public BaseOne() {System.out.println(BaseOne构造器);}{System.out.println(BaseOne初始化块);System.out.println();}static {System.out.println(BaseOne静态初始化块);}}BaseTwo类 package com.gx.initializationblock;public class BaseTwo extends BaseOne {public BaseTwo() {System.out.println(BaseTwo构造器);}{System.out.println(BaseTwo初始化块);}static {System.out.println(BaseTwo静态初始化块);} }BaseThree 类 package com.gx.initializationblock;public class BaseThree extends BaseTwo {public BaseThree() {System.out.println(BaseThree构造器);}{System.out.println(BaseThree初始化块);}static {System.out.println(BaseThree静态初始化块);} }测试demo2类 package com.gx.initializationblock;/*注这里的ABC对应BaseOne、BaseTwo、BaseThree * 多个类的继承中初始化块、静态初始化块、构造器的执行顺序在继承中先后执行父类A的静态块父类B的静态块最后子类的静态块然后再执行父类A的非静态块和构造器然后是B类的非静态块和构造器最后执行子类的非静态块和构造器*/ public class Demo2 {public static void main(String[] args) {BaseThree baseThree new BaseThree();System.out.println(-----);BaseThree baseThree2 new BaseThree();} }运行结果 BaseOne静态初始化块 BaseTwo静态初始化块 BaseThree静态初始化块 BaseOne初始化块BaseOne构造器 BaseTwo初始化块 BaseTwo构造器 BaseThree初始化块 BaseThree构造器 ----- BaseOne初始化块BaseOne构造器 BaseTwo初始化块 BaseTwo构造器 BaseThree初始化块 BaseThree构造器多个类的继承中初始化块、静态初始化块、构造器的执行顺序为先后执行父类A的静态块父类B的静态块最后子类的静态块然后再执行父类A的非静态块和构造器然后是B类的非静态块和构造器最后执行子类的非静态块和构造器【注这里的ABC对应BaseOne、BaseTwo、BaseThree 】 结论多个类的继承中初始化块、静态初始化块、构造器的执行顺序为父类静态块——子类静态块——父类代码块——父类构造器——子类代码块——子类构造器
http://www.zqtcl.cn/news/172590/

相关文章:

  • 网站关键词优化排名软件东莞网站建设图表
  • 为企业设计网站微信开放平台的发展前景
  • 苏州高端做网站软件开发流程图例子
  • 开发区网站建设公司wordpress中文官网
  • 购物网站项目经验搭建网站流程
  • 网站建设企业蛋糕怎么做网站里导出没有水印的图
  • 享设计网做兼职设计师怎么样何鹏seo
  • 淘宝联盟网站推广位怎么做网站建设小知识
  • 徐州有办网站的地方吗企业做网站多少钱
  • 地铁公司招聘信息网站通江县网站建设
  • 家具网站 模板上海虹口建设局官方网站
  • 网站建站建设哪家好wordpress全站静态
  • 旅游网站建设策划seo顾问多少钱
  • 个人网站注册平台要多少钱彩票网站开发 违法
  • 贵州城乡住房和建设厅网站易企秀网站开发语言
  • 返利网站做鹊桥推广免费的舆情网站入口在哪
  • 网站商城怎么做wordpress图片采集插件
  • 做美团网站代码swoole+wordpress
  • 百度免费资源网站搭建发卡网站要多少钱
  • ip网站怎么做酷家乐手机版
  • cnzz统计代码如何添加到网站上去照片网站源码
  • 我的世界电影怎么做的视频网站网页布局实训心得体会
  • 网站建设公司内部情况凡客诚品陈年
  • 浙江建设职业技术学院迎新网站商务网站建设体会
  • 做网站的目的与意义做家教去什么网站
  • 相城网站建设为什么网站建设价格不一
  • 网站icp备案手续我做的网站平台百度搜不到
  • 本溪网站设计公司ps转页面wordpress插件
  • 怎么做短链接网站搜索引擎优化的各种方法
  • 自己做网站怎么挣钱微网站建站系统源码