Java连载44-静态代码块、实例代码块、继承
一、可以使用static关键字来定义“静态代码块”
1.语法规则
static {
java语句;
}
2.静态代码块在类加载时执行,并且只执行一次
3.静态代码块在一个类中可以编写多个,并且遵循自上而下的顺序依次执行。
4.静态代码块的作用是什么?怎么使用?用在哪里?什么时候用?
这当然和具体的需求有关,例如:项目中要求在类加载的时候执行代码完成日志的记录,那么这段记录日志的代码就可以编写在到静态代码块之中,完成日志记录。
静态代码块是java准备的一个特殊时刻,这个特殊时刻被称为类加载时刻,若希望在此执行一段特殊的程序,这段程序可以直接放在静态代码块之中。
package com.bjpowernode.java_learning;
public class D44_StaticCodeBlock {
static {
System.out.println("类加载1");
}
static {
System.out.println("类加载2");
}
static {
System.out.println("类加载3");
}
public static void main(String[] args) {
System.out.println("j");
}
}

5.通常在静态代码块当中完成预备工作,先完成数据的准备工具,例如:初始化连接池,解析XML配置文件
二、实例代码块/语句块
1.实例代码块可以编写多个,也是遵循自上而下的顺序进行执行
2.实例代码块在构造方法执行之前进行执行,构造方法执行一次,实例代码块执行对应一次。
3.实例代码块也是java语言准备的一个特殊时机,这个特殊时机被称为对象初始化时机。
4.语法结构
{
java语句;
}
5.举例
package com.bjpowernode.java_learning;
public class D44_2_ObjectCodeBlock {
{
System.out.println("实例代码块1");
}
{
System.out.println("实例代码块1");
}
public static void main(String[] args) {
System.out.println("shaof");
new D44_2_ObjectCodeBlock();
}
}
三、总结
1.public表示公开的,在任何位置都是可以访问的
static表示静态的,使用“类名."的方式进行访问,不需要创建对象,就可以调用这里的main方法。
2.方法什么时候定义为静态的方法(静态方法又称为静态上下文)
方法描述的是动作,当所有的对象执行这个动作的时候,最终产生的影响是一样的,那么这个动作已经不再属于某一个对象动作了,可以将这个动作提升为类级别的动作,模板级别的动作。
3.大多数方法都定义为实例方法,一般一个行为或者一个动作在发生的时候,都需要对象的参与,但是也是有例外的,例如:大多数”工具类“的方法都是静态方法,因为工具类就是方便编程,为了方便方法的调用,自然不需要new对象是最好的。例如:Math.PI
四、继承
1.继承是面向对象的三大特征之一。(三大特征:封装、继承、多态)
2.继承“基本”作用:代码复用,但是继承最重要的作用是:有了继承才会有以后的“方法覆盖”和“多态机制”
3.继承语法格式:
[修饰符列表] class 类名 extends 父类名{
类体 = 属性 + 方法
}
4.java语言中只支持单继承,一个类不能同时继承很多的类,只能继承一个类,在C++中支持多继承
5.关于继承的一些术语:
B类继承A类,其中:
A类称为:父类,基类,超类、superclass
B类称为:子类,派生类,subclass
6.在java语言中子类继承父类都继承哪些数据呢?
(1)私有的不能继承;(2)构造方法不能继承;(3)其他数据都可以继承
7.虽然java语言之中只支持单继承,但是一个类也可以间接继承其他类,例如:
C extends B{
}
B extends A{
}
A extends T{
}
C直接继承B类,但是C类间接继承A、T类
五、源码:
D44_1_StaticCodeBlock.java
D44_2_ObjectCodeBlock.java
地址:
https://github.com/ruigege66/Java/blob/master/D44_1_StaticCodeBlock.java
https://github.com/ruigege66/Java/blob/master/D44_2_ObjectCodeBlock.java
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载44-静态代码块、实例代码块、继承的更多相关文章
- Java父类与子类中静态代码块 实例代码块 静态变量 实例变量 构造函数执行顺序
实例化子类时,父类与子类中的静态代码块.实例代码块.静态变量.实例变量.构造函数的执行顺序是怎样的? 代码执行的优先级为: firest:静态部分 second:实例化过程 详细顺序为: 1.父类静态 ...
- Java笔记_静态变量和实例变量的区别
这里简单做一下笔记,区分Java全局变量里的静态变量与实例变量. 1.Java里的全局变量 首先了解Java里的全局变量,也叫成员变量. 特点: (1).一个类中既不在方法体内,也不在程序块内定义的变 ...
- java 中的静态(static)代码块
类字面常量 final 静态域不会触发类的初始化操作 非 final static 静态域(以及构造器其实是一种隐式的静态方法) Class.forName():会自动的初始化: 使用 .class来 ...
- java程序文件读取与保存实例代码
class RadioHere extends JFrame implements ActionListener { private JTextArea ta=new JTextArea(10,20) ...
- 什么是Java实例初始化块
在本篇文章,我将会使用一个例子展示什么是实例变量初始化块,实例初始化块和静态初始化块,然后说明在Java中实例初始化块是如何工作的. 执行顺序 查看下面的代码,你知道哪个先执行吗? package s ...
- java实例初始化块
实例初始化程序块用于初始化实例数据成员. 它在每次创建类的对象时运行.实例变量的初始化可以是直接的,但是可以在初始化实例初始化块中的实例变量时执行额外的操作. 什么是实例初始化块的使用,我们可以直接分 ...
- java常量,变量,静态变量的理解
最近考试出了一个很简单的题,看看他们对java常量,变量,静态变量的理解,代码如下: public class TestVar { /** * JAVA基础,常量,变量,静态变量 */ public ...
- 【JAVA】笔记(3)---封装;如何选择声明静态变量还是实例变量;如何选择声明静态方法还是实例方法;静态代码块与实例代码块的执行顺序与用途;
封装: 1.目的:保证对象中的实例变量无法随意修改/访问,只能通过我们自己设定的入口,出口(set / get)来间接操作:屏蔽类中复杂的结构,使我们程序员在主方法中关联对象写代码时,思路/代码格式更 ...
- Java中普通代码块,构造代码块,静态代码块的代码演示样例及区分
//运行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 当中静态代码块仅仅运行一次.构造代码块在每次创建对象是都会运行. 1 普通代码块 <span ...
随机推荐
- [Go] 轻量服务器框架基础TCP服务模块
框架要先把整体的结构定义好,一般都是在$GOPATH目录的src下建立自己的目录 zinterface是一些接口的定义 znet就是接口的具体实现 IServer.go package zinterf ...
- 一步一步创建聊天程序2-利用epoll来创建简单的聊天室
如图,这个是看视频时,最后的作业,除了客户端未使用select实现外,其它的要求都有简单实现. 服务端代码如下: #include <stdio.h> #include <strin ...
- Python生成requirements.txt方法
在查看别人的Python项目时,经常会看到一个requirements.txt文件,里面记录了当前程序的所有依赖包及版本号,其作用是用来在另一个环境上重新构建项目所需要的运行环境依赖. require ...
- http并发访问模型(2)
目录 http并发 并发访问模型 响应流程 从IO的角度看待响应 从函数的角度看待响应 日志处理 我叫张贺,贪财好色.一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网 ...
- Python文件操作:文件的打开关闭读取写入
Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文 ...
- [考试反思]1112csp-s模拟测试112:二返
连着两场... 信心赛.但是题锅了,我也锅了. 然后Day2就不用考了. T1没开够long long.(a+b+c+0ll)与(0ll+a+b+c)还是有一点区别的. T2出题人用Windows出数 ...
- jvaa之初始化块
1.初始化块的作用:对java对象进行初始化: 2.程序的执行顺序:声明成员变量的默认值-->显示初始化,多个初始化块依次被执行(同级别下按先后顺序执行)-->构造器在对成员进行赋值操作. ...
- zabbix通过agent监控linux主机
前言: 前几篇博客分别介绍了通过snmp来进行监控linux主机与windows主机,本篇介绍通过agent客户端来进行系统监控. 环境: server:192.168.249.142 client: ...
- ETCD:在容器中运行etcd集群
原文地址:Docker container 以下指南显示了如何使用静态引导过程在rkt和Docker上运行etcd. rkt 运行单节点的etcd 以下rkt run命令将在端口2379上公开etcd ...
- 常用类-ExcelHelper
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...