Java 面向对象:static的理解
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();}
}
运行结果:
子类代码块的运行顺序:
- 父类静态代码块
- 子类静态代码块
- 父类匿名代码块
- 父类构造方法
- 子类匿名代码块
- 子类构造器
- 子类普通初始化块
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的理解相关推荐
- C语言与Java怎么沟通_c语言初学指针,对于java面向对象的初理解
最近在看关于c语言的指针,学习下,发现指针原来运用理解成其实可以抽象出我们java的面向对象封装,地址--> 对象或变量,先看一段代码: public class Cat { public St ...
- java c 面向对象比较教程_c语言初学指针,对于java面向对象的初理解
最近在看关于c语言的指针,学习下,发现指针原来运用理解成其实可以抽象出我们java的面向对象封装,地址--> 对象或变量,先看一段代码: public class Cat { public St ...
- 我们程序员眼中的对象-看完华华的文章妈妈再也不担心我找不到对象了-Java面向对象编程思想理解系列(1)
大家好!!!我叫霜华,是一个帅到没天理 骚里骚气,热爱人生与绿色 是一个不像程序员的程序员 作为一个在java这门领域沉迷一年半的人,如今在技术栈广度和深度 还是业务能力在客观层面讲确实进步迅速 (可 ...
- java面向对象思想如何理解
Java 的核心是面向对象编程 . 所有的 java 程序都是面向对象的. 以前总听老师说 c 语言是面向过程的, c++ 和 java 是面向对象的,这些糊涂老师却从来不说明何为面向过程,何为 ...
- 谈谈java面向对象思想_对于Java面向对象思想的理解
在Java中,除了8种基本数据类型.其他皆为对象! 面向对象主要有 三个基本特征:封装,继承,多态. 封装 主要概念是指:隐藏对象的属性和实现细节,仅对外暴露公共的访问方式.封装是面向对象最基本的特征 ...
- java面向对象三大特性理解
面向对象主要由三大特性: 封装 继承 多态 一.封装定义: 编写一个类就是对数据和数据的操作封装,封装即时隐藏一切可隐藏的东西,只向外界提供最简单的编程接口.(简单的来说在Java中一个文件包下的类文 ...
- java中static的理解
1.基础知识 static 标注的变量 叫(静态变量) 没有static标注的变量 叫实例变量(即类 new出来,才能调用的变量) 2.静态变量与实例变量的对比 static标注的变量:static在 ...
- Java面向对象思想OOP理解 东海陈光剑 剑魔书仙读书录
/****/ package iSword;import java.util.Scanner;/*** @author root**///*****************************主类 ...
- Java面向对象三大特征理解
1.继承 继承是从已有类得到继承信息创建新类的过程.继承提高代码重用性.关于私有属性,官方文档解释:子类不能继承父类的私有属性,但是如果子类中有公共方法操作父类私有属性,则表现出子类可以使用父类的私有 ...
- java 面向对象个人理解
1.java面向对象我的理解是:一个系统可以看做一个对象,例如能耗监测系统,我需要监测能耗时,我只要用这个系统就可以了,他内部怎么实现的我不用去管. 2.举个例子:例如一个人是一个对象,可以用属性描述 ...
最新文章
- 开关电源反馈环路设计matlab,开关电源控制环路设计(初级篇).pdf
- 在HTML中,如何设置新窗口打开和在原窗口打开
- POJ 2348 Euclid's Game(博弈)题解
- html下拉框只选择年份和月份,原生jQuery实现只显示年份下拉框
- mysql 存储过程创建表_MySQL之存储过程按月创建表的方法步骤
- javascript 使用zlib发送wss请求,接收blob,并解压
- python绝对值_绝对值排序 (Python代码)
- 摄影基础知识——曝光和测光
- 网络连接不正常是什么原因
- 直接序列扩频通信系统
- 深度学习提高模型准确率方法
- 信安学习-day16
- 奇思妙想:小程序wxapkg包一键运行至浏览器是什么操作?
- JS小数运算的正确姿势:保留两位小数技巧全解析
- 学编程要什么基础,零基础呢?
- touchgfx视频教程
- 线程池有哪几种状态,分别是如何发生变化的?
- 室内装修风水 之 堂前聚水法 - oralusa.com
- 511遇见易语言乐玩插件FindPic找图
- 关于蜂鸣器,看这篇足够了