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

c2c网站代表和网址c .net网站开发视频教程

c2c网站代表和网址,c .net网站开发视频教程,长沙网站建设zh68,如何做好品牌网站建设策划程序中代码执行的顺序非常重要#xff0c;稍有不慎便会是程序运行出错#xff0c;那么我将结合实例来分析代码中的执行。名词解释首先了解几个名词#xff1a;非静态代码块直接由 { } 包起来的代码#xff0c;称为非静态代码块静态代码块直接由 static { } 包起来的代码稍有不慎便会是程序运行出错那么我将结合实例来分析代码中的执行。名词解释首先了解几个名词非静态代码块直接由 { } 包起来的代码称为非静态代码块静态代码块直接由 static { } 包起来的代码称为静态代码块形参比如你定义一个函数void add(int a, int b)这里的a和b就是形参。当你进行函数调用的时候add(1, 2)这里的1和2就是实参。向前引用所谓向前引用就是在定义类、接口、方法、变量之前使用它们。成员变量在类体里面定义的变量称为成员变量如果该成员变量有 static 关键字修饰则该成员变量称为 静态变量 或 类变量如果该成员变量没有 static 关键字修饰则该成员变量被称为 非静态变量 或 实例变量。局部变量形参、方法内定义的变量、代码块中定义的变量都属于局部变量。类变量 (静态变量)可以向前引用变量属于类本身类变量不依赖类的实例类变量只在初始化时候在方法区中被分配一次空间无论类的实例被创建几次都不再为类变量分配空间通过类的任意一个实例来访问类变量底层都将将其转为通过类本身来访问类变量它们的效果是一样的一旦类变量的值被改变通过类或类的任意一个实例来访问类变量得到的都将是被改变后的值将在类的初始化之前初始化实例变量(非静态变量)不能向前引用如果向前引用则称为非法向前引用这是不允许的变量属于类的实例对象随着类的实例被创建而分配内存空间实例演示public class Parent {public int parentNum0;public static int staticParentNum0;{System.out.println(Parent---执行非静态代码块了1);}{System.out.println(Parent---执行非静态代码块了2);}static{System.out.println(Parent---执行静态代码块了1);}static{System.out.println(Parent---执行静态代码块了2);}public Parent(){System.out.println(Parent---无参构造函数);}public Parent(int parentNum){this.parentNumparentNum;System.out.println(Parent---有参构造函数);}public void ParentMethod(int parentNum){this.parentNumparentNum;System.out.println(Parent---非静态方法/parentNumparentNum);}public static void staticParentMethod(int staticParentNum){Parent.staticParentNumstaticParentNum;System.out.println(Parent---静态方法/staticParentNumstaticParentNum);}}public class Child extends Parent{public int childNum0;public static int staticChildNum0;{System.out.println(Child---执行非静态代码块了1);}{System.out.println(Child---执行非静态代码块了2);}static{System.out.println(Child---执行静态代码块了1);}static{System.out.println(Child---执行静态代码块了2);}public Child(){super();System.out.println(Child---无参构造函数);}public Child(int childNum){super(childNum);System.out.println(Child---有参构造函数);}public void childMethod(int childNum){this.childNumchildNum;System.out.println(Child--非静态方法/childNumchildNum);}public static void staticChildMethod(int staticChildNum){Child.staticChildNumstaticChildNum;System.out.println(Child---静态方法/staticChildNumstaticChildNum);}}package test;public class Test {// static{// System.out.println(Test---静态代码块);// }public static void main(String[] args) {int key10;switch (key) {case 0:Parent parentnew Parent();break;// Parent---执行静态代码块了1// Parent---执行静态代码块了2// Parent---执行非静态代码块了1// Parent---执行非静态代码块了2// Parent---无参构造函数// 说明先加载静态代码块后加载非静态代码块case 1:Child b new Child();break;// Parent---执行静态代码块了1// Parent---执行静态代码块了2// Child---执行静态代码块了1// Child---执行静态代码块了2// Parent---执行非静态代码块了1// Parent---执行非静态代码块了2// Parent---无参构造函数// Child---执行非静态代码块了1// Child---执行非静态代码块了2// Child---无参构造函数// 说明创建子类会先执行父类先执行父类静态——子类静态——父类非静态——父类构造//——子类非静态——子类构造case 2:Child c new Child(4);//这个构造函数中指明了调用父类的有参构造函数若不指定则调用父类无参构造函数break;// Parent---执行静态代码块了1// Parent---执行静态代码块了2// Child---执行静态代码块了1// Child---执行静态代码块了2// Parent---执行非静态代码块了1// Parent---执行非静态代码块了2// Parent---有参构造函数// Child---执行非静态代码块了1// Child---执行非静态代码块了2// Child---有参构造函数说明静态代码块或非静态代码块执行顺序按照代码前后编写顺序。case 3:Child d new Child();Child e new Child(4);break;// Parent---执行静态代码块了1// Parent---执行静态代码块了2// Child---执行静态代码块了1// Child---执行静态代码块了2// Parent---执行非静态代码块了1// Parent---执行非静态代码块了2// Parent---无参构造函数// Child---执行非静态代码块了1// Child---执行非静态代码块了2// Child---无参构造函数// Parent---执行非静态代码块了1// Parent---执行非静态代码块了2// Parent---有参构造函数// Child---执行非静态代码块了1// Child---执行非静态代码块了2// Child---有参构造函数说明创建多个子类但父类静态代码块只执行一次。case 4:Child.staticChildMethod(4);break;// Parent---执行静态代码块了1// Parent---执行静态代码块了2// Child---执行静态代码块了1// Child---执行静态代码块了2// Child---静态方法/staticChildNum4说明静态方法只可以调用静态变量。case 5:Parent.staticParentMethod(5);break;// Parent---执行静态代码块了1// Parent---执行静态代码块了2// Parent---静态方法/staticParentNum5说明静态方法可通过 父类名.静态方法() 调用。case 6:System.out.println(父类的静态变量值staticParentNumParent.staticParentNum);break;// Parent---执行静态代码块了1// Parent---执行静态代码块了2// 父类的静态变量值staticParentNum0说明调用静态变量时静态代码块会执行。case 7:System.out.println(子类的静态变量值staticChildNumChild.staticChildNum);break;// Parent---执行静态代码块了1// Parent---执行静态代码块了2// Child---执行静态代码块了1// Child---执行静态代码块了2// 子类的静态变量值staticChildNum0说明调用子类静态变量父类静态代码块和子类静态代码块会被执行。case 8:System.out.println(父类的静态变量值staticParentNumParent.staticParentNum);System.out.println(子类的静态变量值staticChildNumChild.staticChildNum);break;// Parent---执行静态代码块了1// Parent---执行静态代码块了2// 父类的静态变量值staticParentNum0// Child---执行静态代码块了1// Child---执行静态代码块了2// 子类的静态变量值staticChildNum0case 9:Child f new Child();f.ParentMethod(3);break;// Parent---执行静态代码块了1// Parent---执行静态代码块了2// Child---执行静态代码块了1// Child---执行静态代码块了2// Parent---执行非静态代码块了1// Parent---执行非静态代码块了2// Parent---无参构造函数// Child---执行非静态代码块了1// Child---执行非静态代码块了2// Child---无参构造函数// Parent---非静态方法/parentNum3说明创建子类用子类调用父类方法非静态方法可以调用静态变量。default:break;}}}总结Java代码初始化顺序由 static 关键字修饰的(如类变量(静态变量)、静态代码块)将在类被初始化创建实例对象之前被初始化而且是按顺序从上到下依次被执行。静态(类变量、静态代码块)属于类本身不依赖于类的实例。没有 static 关键字修饰的(如实例变量(非静态变量)、非静态代码块)初始化实际上是会被提取到类的构造器中被执行的但是会比类构造器中的代码块优先执行到非静态(实例变量、非静态代码块)的地位是相等的它们将按顺序被执行。类变量(静态变量)、实例变量(非静态变量)、静态代码块、非静态代码块的初始化时机由 static 关键字修饰的(如类变量[静态变量]、静态代码块)将在类被初始化创建实例对象之前被初始化而且是按顺序从上到下依次被执行没有 static 关键字修饰的(如实例变量[非静态变量]、非静态代码块)初始化实际上是会被提取到类的构造器中被执行的但是会比类构造器中的 代码块优先执行到其也是按顺序从上到下依次被执行。容易混淆的一个知识点静态方法只允许直接访问静态成员而实例方法中可以访问静态成员和实例成员原因是类还没有实例化所实例成员也没有被创建静态方法中因此也不能用this。欢迎关注公众号交流
http://www.ihoyoo.com/news/58948.html

相关文章:

  • 襄阳seo站内优化室内装饰公司网站模板
  • 做面食视频网站网站图片的暗纹是怎么做的
  • 建筑网站设计方案网站友情链接怎么添加
  • 西安信息网站建设学编程后悔死了
  • 漳州做网站建设的公司百度经验官网首页
  • jquery网站开发实例单位做核酸检测简报
  • 世界500强企业排行榜中国企业宁波网站的优化
  • 网站建设流程详解网站备案需要多少时间
  • 做外贸soho要做网站吗镇江百度推广
  • 建设银行手机网站变淘宝网站开发语言
  • 州网站建设要找嘉艺网络网页版传奇游戏怎么制作
  • 北京网站优化平台wordpress 搭建论坛
  • 网页制作网站素材变身小说 wordpress
  • wordpress 视频不播放西安seo黑
  • 网站对接如何做购物网站排名 2019
  • 购物网站如何做基于vue.js旅游网站开发
  • 天津建站管理系统价格网站备案照片怎么弄
  • 企业网站本身应该就是企业( )的一部分html静态网页制作案例
  • 做博客网站的php代码网络工程是做什么的
  • 免费下载模板的网站有哪些wordpress创建小工具栏
  • 个人网站可以做app吗wordpress搭建教育平台
  • 如何自建网站wordpress增加会员中心
  • 做民宿的有哪些网站江苏网站建设找拉米拉
  • 什么网站可以做家禽交易做关于时尚网站的目的
  • 网站建设与维护总结网络推广加盟费多少
  • 汽车销售在哪些网站做推广网站后台管理系统制作
  • 苏州网站设计公司价格wordpress文章分页插件
  • 行业门户网站建设费用科技型中小企业认定条件
  • 邮件设计网站家庭厨房做外卖网站
  • 惠州网站建设企业网页微信不能登录是怎么回事