Java 面向对象:static的理解以及各个代码块的运行顺序

一、static关键字

  • static修饰方法——称为静态方法,可以直接通过类名调用
  • static修饰变量——称为静态变量,能被类中所有实例共享

二、代码块的运行顺序

单个类的加载顺序:

1. 静态代码块(只执行一次)

格式:static {java语句java语句
}
  • 静态代码块在类加载时执行,并且只执行一次
  • 一个类可以有多个静态代码块
  • 静态代码块1和静态代码块2是有先后顺序的,一般是按照自上而下的顺序执行,
  • 静态变量和静态代码块是有先后顺序的
  • 静态代码块的作用:静态代码块不常用,主要用来记录类加载的日志信息(记录时间,哪个类加载到JVM当中)

2. 匿名代码块(用于赋初始值)

格式:

{
java语句
java语句
}

3. 构造器

格式:

public 类名(){

}

4. 普通代码块

格式:

public void 方法名(){
方法体

}

示例:

test类

package Day0204.Demo04;
//依次执行静态代码块(只执行一次)、匿名代码块(用于赋初始值)、再到构造器
public class Test {static {//1:只执行一次次System.out.println("父类静态代码块");//静态代码块}{//2:赋予初始值//匿名代码块System.out.println("父类匿名代码块");}public Test() {//3System.out.println("父类构造方法");}public void method(){{System.out.println("父类普通初始化块");}}public static void main(String[] args) {Test test = new Test();test.methid();}
}

运行结果:

子类代码块的运行顺序:

  1. 父类静态代码块
  2. 子类静态代码块
  3. 父类匿名代码块
  4. 父类构造方法
  5. 子类匿名代码块
  6. 子类构造器
  7. 子类普通初始化块

test2类

package Day0204.Demo04;public class Test2 extends Test{static {//1:只执行一次次System.out.println("子类静态代码块");//静态代码块}{//2:赋予初始值//匿名代码块System.out.println("子类匿名代码块");}public Test2() {System.out.println("子类构造器");}public void method(){{System.out.println("子类普通初始化块");}}public static void main(String[] args) {Test2 test2 = new Test2();test2.method();}
}

运行结果:

Java 面向对象:static的理解相关推荐

  1. C语言与Java怎么沟通_c语言初学指针,对于java面向对象的初理解

    最近在看关于c语言的指针,学习下,发现指针原来运用理解成其实可以抽象出我们java的面向对象封装,地址--> 对象或变量,先看一段代码: public class Cat { public St ...

  2. java c 面向对象比较教程_c语言初学指针,对于java面向对象的初理解

    最近在看关于c语言的指针,学习下,发现指针原来运用理解成其实可以抽象出我们java的面向对象封装,地址--> 对象或变量,先看一段代码: public class Cat { public St ...

  3. 我们程序员眼中的对象-看完华华的文章妈妈再也不担心我找不到对象了-Java面向对象编程思想理解系列(1)

    大家好!!!我叫霜华,是一个帅到没天理 骚里骚气,热爱人生与绿色 是一个不像程序员的程序员 作为一个在java这门领域沉迷一年半的人,如今在技术栈广度和深度 还是业务能力在客观层面讲确实进步迅速 (可 ...

  4. java面向对象思想如何理解

     Java 的核心是面向对象编程 . 所有的 java 程序都是面向对象的. 以前总听老师说 c 语言是面向过程的, c++ 和 java 是面向对象的,这些糊涂老师却从来不说明何为面向过程,何为 ...

  5. 谈谈java面向对象思想_对于Java面向对象思想的理解

    在Java中,除了8种基本数据类型.其他皆为对象! 面向对象主要有 三个基本特征:封装,继承,多态. 封装 主要概念是指:隐藏对象的属性和实现细节,仅对外暴露公共的访问方式.封装是面向对象最基本的特征 ...

  6. java面向对象三大特性理解

    面向对象主要由三大特性: 封装 继承 多态 一.封装定义: 编写一个类就是对数据和数据的操作封装,封装即时隐藏一切可隐藏的东西,只向外界提供最简单的编程接口.(简单的来说在Java中一个文件包下的类文 ...

  7. java中static的理解

    1.基础知识 static 标注的变量 叫(静态变量) 没有static标注的变量 叫实例变量(即类 new出来,才能调用的变量) 2.静态变量与实例变量的对比 static标注的变量:static在 ...

  8. Java面向对象思想OOP理解 东海陈光剑 剑魔书仙读书录

    /****/ package iSword;import java.util.Scanner;/*** @author root**///*****************************主类 ...

  9. Java面向对象三大特征理解

    1.继承 继承是从已有类得到继承信息创建新类的过程.继承提高代码重用性.关于私有属性,官方文档解释:子类不能继承父类的私有属性,但是如果子类中有公共方法操作父类私有属性,则表现出子类可以使用父类的私有 ...

  10. java 面向对象个人理解

    1.java面向对象我的理解是:一个系统可以看做一个对象,例如能耗监测系统,我需要监测能耗时,我只要用这个系统就可以了,他内部怎么实现的我不用去管. 2.举个例子:例如一个人是一个对象,可以用属性描述 ...

最新文章

  1. 开关电源反馈环路设计matlab,开关电源控制环路设计(初级篇).pdf
  2. 在HTML中,如何设置新窗口打开和在原窗口打开
  3. POJ 2348 Euclid's Game(博弈)题解
  4. html下拉框只选择年份和月份,原生jQuery实现只显示年份下拉框
  5. mysql 存储过程创建表_MySQL之存储过程按月创建表的方法步骤
  6. javascript 使用zlib发送wss请求,接收blob,并解压
  7. python绝对值_绝对值排序 (Python代码)
  8. 摄影基础知识——曝光和测光
  9. 网络连接不正常是什么原因
  10. 直接序列扩频通信系统
  11. 深度学习提高模型准确率方法
  12. 信安学习-day16
  13. 奇思妙想:小程序wxapkg包一键运行至浏览器是什么操作?
  14. JS小数运算的正确姿势:保留两位小数技巧全解析
  15. 学编程要什么基础,零基础呢?
  16. touchgfx视频教程
  17. 线程池有哪几种状态,分别是如何发生变化的?
  18. 室内装修风水 之 堂前聚水法 - oralusa.com
  19. 511遇见易语言乐玩插件FindPic找图
  20. 关于蜂鸣器,看这篇足够了

热门文章

  1. Codeforces Round #280 (Div. 2)
  2. webservice采用ssl/https传输
  3. 学习进行中,快over了
  4. JavaScript Swiper插件
  5. chrome浏览器,开发工具一些常用快捷键
  6. JNI开发笔记(七)--aar库的生成和调用
  7. ROS系列之初识gmapping
  8. 百度 经验 apache php mysql_php+Apache环境搭建教程
  9. php 替换img宽度,php 如何替换img
  10. 2019年一半已过,这些大前端技术你都GET了吗?- 下篇