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

成都建设银行网站首页沈阳cms建站模板

成都建设银行网站首页,沈阳cms建站模板,黄骅贴吧房屋租赁信息,做网站襄樊希望像唠嗑一样,one step one futher。 目录 (1)代码块的应用场景 (2)代码块的细节 1.static 代码块只加载一次 2.当调用类的静态成员时,类会加载 3. 使用类的静态成员时,static代码块会被执…

 希望像唠嗑一样,one step one futher。

目录

(1)代码块的应用场景

 (2)代码块的细节

1.static 代码块只加载一次

 2.当调用类的静态成员时,类会加载

3. 使用类的静态成员时,static代码块会被执行,但普通代码块不会执行

4.创建对象时,静态成员、普通成员、 构造器的调用顺序

5.有继承关系时,静态成员、普通成员、 构造器的调用顺序

6.静态代码块中只能调用静态成员​


基于韩顺平老师的课进行Java知识的巩固练习 

(1)代码块的应用场景

 假设有以下雇员类,在该类的每个构造函数中输出“我是员工”这句话,不免有些重复并且造成内存浪费。

 public class Employee {private String name;private int id;private int salary;public Employee(String name) {System.out.println("我是员工");this.name = name;}public Employee(String name, int id) {System.out.println("我是员工");this.name = name;this.id = id;}public Employee(String name, int id, int salary) {System.out.println("我是员工");this.name = name;this.id = id;this.salary = salary;}}

如果用代码块则可以解决重复的问题,由此可以看出代码块可以初始化并且解决重复语句的问题(代码块执行顺序要比构造函数高)

 public class Employee {private String name;private int id;private int salary;{System.out.println("我是员工");}public Employee(String name) {this.name = name;}public Employee(String name, int id) {this.name = name;this.id = id;}public Employee(String name, int id, int salary) {this.name = name;this.id = id;this.salary = salary;}}

 (2)代码块的细节

1.static 代码块只加载一次

如果是普通代码块,每创建一个对象它就会执行一次代码块,而static代码块无论是创建多少个对象(>=1)都只会执行一次。

 2.当调用类的静态成员时,类会加载

注意创建子类对象时,父类也会被加载。先加载父类代码块,再加载子类代码块。当创建了一个对象时,调用该对象的静态成员时,类就会被加载。

3. 使用类的静态成员时,static代码块会被执行,但普通代码块不会执行

由下列看出,当没有创建对象时,使用类加载去访问静态成员时,static代码块也会被加载(只加载一次),但普通代码块不会被加载。

4.创建对象时,静态成员、普通成员、 构造器的调用顺序

 在创建对象时,调用顺序是这样的:先调用静态(属性或方法按顺序调用),然后是普通代码块和普通属性,最后才是构造器的调用。 

5.有继承关系时,静态成员、普通成员、 构造器的调用顺序

  

由下列程序可以观察到,如果有两个类是继承关系,两个类都有静态、普通、构造方法。创建一个子类对象,则执行的顺序是:

(1)先调用父类static,然后是子类static。先完成父子类的静态属性

(2)父类的普通方法,然后是父类的构造器,完成父类后。

(3)子类的普通方法,最后是子类的构造器,最后完成子类。

class Employee{static{System.out.println("Employee静态代码块");}public Employee() {System.out.println("Employee构造器");}
}
class Manager extends Employee{static{System.out.println("Manager静态代码块");}public Manager(){System.out.println("Manager构造器");}
}
class Test{public static void main(String[] args) {Manager manager = new Manager();}
}

 

6.静态代码块中只能调用静态成员

 由下图看出当在静态代码块中访问非静态成员是不允许的。但在普通代码块中则可以访问静态或者非静态成员。

http://www.dt0577.cn/news/18266.html

相关文章:

  • 网站首页菜单栏模块怎么做的seo诊断书
  • asp.net网站开发视频排位及资讯
  • 网站权重如何提高网络公司名字
  • 做关键字要改网站seo软文推广
  • 贵州省城乡和建设厅网站朝阳区seo技术
  • 西安东郊做网站百度推广开户费用多少
  • phpcms律师网站模板免费推广软件平台
  • 安卓应用下载东莞网站推广行者seo08
  • 免费h5响应式网站搭建百度百科分类方法
  • 临夏网站制作建站系统源码
  • 如何做外卖网站产品市场调研怎么做
  • 绿色网站设计杭州百度推广
  • 构建新引擎激发新动力平板电视seo优化关键词
  • 中文域名转码网站太原seo团队
  • 买域名的网站正规的教育培训机构有哪些
  • 北京做网站开发公司有哪些友情链接什么意思
  • 网站品牌高端定制吉林seo推广
  • 网站域名是啥预测2025年网络营销的发展
  • 专题网站建设策划书新闻最新热点
  • 网站模板与网站开发友情链接购买
  • 网站制作完工验收单seo标题关键词优化
  • 台州网站制作关键词排名优化工具有用吗
  • 专做母婴食品的网站成都网站搭建优化推广
  • 六安网站建设 220域名备案官网
  • 网站制作项目分析怎么做 方法百度运营公司
  • 百度网站空间seo测试
  • 专门帮做ppt的网站seo推广招聘
  • 做网站需要到什么技术广告优化
  • wordpress做社交网站永久免费的建站系统有哪些
  • wordpress调用特色图片深圳网站优化推广方案