类的成员之四:代码块

news2024/11/16 13:57:23

文章目录

  • 一、代码块
    • 静态代码块
    • 非静态代码块
    • 注意
    • 总结:由父及子,静态先行
    • 属性赋值总结

一、代码块

1、代码块的作用:用来初始化类、对象
2、代码块如果有修饰的话,只能使用static
3、分类:静态代码块 vs 非静态代码块

静态代码块

1、内部可以有输出语句
2、随着类的加载而执行,而且只执行一次
3、作用:初始化类的信息
4、如果在一个类中定义了多个静态的代码块,按声明的先后顺序执行
5、静态代码块的执行优于非静态代码块的执行
6、静态代码块内只能调用静态的属性或方法,不能调用非静态结构

非静态代码块

1、内部可以有输出语句
2、随着对象的创建而执行,而且每创建一个对象就执行一次
3、作用:可以在创建对象时,对对象的属性进行初始化
4、如果在一个类中定义了多个非静态的代码块,按声明的先后顺序执行
5、非静态代码块内可以调用静态的属性或方法,也可以调用非静态结构

注意

第一点

public class MainTest {
	public static void main(String[] args) {
		System.out.println(Person.name);//LiMIng
		Person p=new Person();
		System.out.println(p.name);//Liming1
	}

}

class Person{
	static String name="黎明";
	static{
		name="LiMIng";
	}
	{
		name="Liming1";
	}
}

这里的误区是:虽然在Person中的name是static的,但是在class Person的非静态代码块中又对static的属性name进行了修改,而在创建对象p后会直接执行非静态代码块,因此此时的name是改后的值。
static修饰的属性或方法不是说是一个固定的值,不能进行修改,而是说每个创建的对象得知都是相同的,且都是修改后的值。不要认为不能修改!

第二点
在这里插入图片描述
这里的是错误的,对属性的赋值只能是显式赋值,或者在方法、代码块等结构中中进行修改。

第三点
main也是一个静态方法,方法执行前也需要先加载类,所以在main执行前,也会先执行代码中的类中定义的静态代码块

总结:由父及子,静态先行

属性赋值总结

①默认初始化
②显式初始化
③构造器初始化
④调用对象.属性或对象.方法
⑤代码块中赋值
顺序:1 - 2或5 - 3 - 4
2或5的意思是,看类中这两个的先后顺序,谁先写的,谁就先执行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/136776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu自动登录脚本

Ubuntu自动登录脚本一、!/usr/bin/expect -f的意义二、spawn命令行:三、send命令:四、expect五、interact命令:本人用xshell的SSH登录云服务器,需要从用户Ubuntu切换到root,再切换到lighthouse。编辑了一个自动切换用户…

2-1进程管理-进程与线程

文章目录1.进程2.进程控制块(PCB)3.进程的状态与转换4.进程通信8.线程9.线程和进程的比较10.线程的实现方式11.多线程模型20.线程的状态与转换1.进程 (1)进程是程序的一次执行过程 (2)进程是进程实体的运行…

JavaScript篇.day09-数据类型,表达式,运算符,作用域,语句,严格模式

目录1.数据类型(1)原始数据类型(2)隐式转换(3)逻辑语句中的类型转换(4)数据类型检测2.表达式3.运算符(1)分类(2)其他4.作用域5.语句6.严格模式1.数据类型(1)原始数据类型number, string, boolean, null, undefined, object object对象包含: Array, Function, Date...function f…

【微服务笔记03】微服务组件之Eureka注册中心高可用集群环境搭建

这篇文章,主要介绍微服务组件之Eureka注册中心高可用集群环境搭建。 目录 一、Eureka集群环境 二、搭建Eureka高可用集群环境 2.1、前提准备 (1)修改hosts配置文件 (2)创建父工程项目 2.2、搭建Eureka注册中心 …

数据可视化大屏Echarts高级开发散点图实战案例分析(地图扩展插件bmap.min.js、散点图、百度地图控件、柱图、涟漪动图、条件判断颜色)

系列文章目录 燃,拿来即用!Echarts动态排名柱状图(自适应电脑和手机端)漏刻有时数据可视化Echarts组件开发(27):盒须图(箱线图)前后端php交互的实战案例漏刻有时数据可视化Echarts组件开发(26):全国地图三级热力图下钻和对接api自动调用数据…

高压功率放大器在高校实验室的实际应用领域介绍

功率放大器的应用领域是很多电子工程师都关心的问题,那么功率放大器的使用场景又有哪些呢,下面来介绍一下安泰高压功率放大器在各个高校的实际应用情况。 图:激光切割 一、ATA-1000系列宽带功率放大器 应用领域:激光切割 适用高校…

Power BI 可视化修改配色

示例数据: 一、Power BI 按列排序 当把文本字段放在坐标轴,显示的顺序都乱了,完全不是自己想要的,就像下图所示: 默认按照Y轴的数值降序排序,如果选择按照month 以升序排序,就会如下所示&am…

【CDP】CDP集群如何通过Cloudera Manager配置使用SNMP方式转发告警

前言 这篇文章参考了大神的文章,如何在CDH平台上集成SNMP服务,然后实现了CDP集群集成SNMP服务,这里描述下,如何集成步骤,在CDP集群中告警是一个很重要的信息,最直观的衡量一个集群的健康状况,那…

[深度学习] 基于切片辅助超推理库SAHI优化小目标识别

对象检测是迄今为止计算机视觉中最重要的应用领域。然而,小物体的检测和大图像的推理仍然是实际使用中的主要问题,这是因为小目标物体有效特征少,覆盖范围少。小目标物体的定义通常有两种方式。一种是绝对尺度定义,即以物体的像素…

【小程序】自定义组件

文章目录组件的创建与引用自定义组件的样式自定义组件的数据、方法和属性data数据methods 方法properties 属性数据监听器纯数据字段组件的生命周期组件所在页面的生命周期插槽单个插槽多个插槽父子组件之间的通信behaviors组件的创建与引用 创建一个组件的步骤: …

发票额度报销最优排列组合问题

1、问题描述 因为我的公司每个月给员工会有一定的交通费额度,需要拿发票去报销才能获得的。要求的是发票总金额不能大于报销的额度。因此在实际报销的时候,你要一张张发票去排列组合经可能的把报销金额往报销额度那里去凑。比如你有1000元额度&#xff0…

Unity 3D JavaScript 脚本基础||Unity 3D C# 脚本基础

变量 数值变量。var a1000;var b3.1415926;字符串变量。 是由单引号或双引号括起来的 Unicode 字符序列。 布尔值。 只有 true 和 false 。用来描述某个事物为真或为假。 数组 是数据的集合,数组中的每一个元素都有自己独有的下标,下标从0开始计数。 表…

《收获,不止Oracle》读书笔记之第三章逻辑体系世界

1.数据库有序的逻辑体系 2.逻辑体系从老余养殖细细说起 推出的逻辑结构是:表空间(tablespace)、段(segment)、区(extent)、块(block)。Oracle server正是有条理地通过表空…

基础数学(七)——线性方程组的数值解法

文章目录考试要求基础知识一般求解思路消元法高斯消元法小主元导致的计算失误高斯列主元素消去法(期末考试要求之一)高斯消元法例题(期末必考)高斯消元法的优缺点减少fill-in现象(了解)矩阵分解Doolittle分…

【ROS】——常用命令(五)

文章目录前言1. rosnode1.1 rosnode list 列出活动节点1.2 rosnode ping 测试到节点的连接状态1.3 rosnode info 打印节点信息1.4 rosnode machine 列出指定设备上节点1.5 rosnode kill 杀死某个节点1.6 rosnode cleanup 清除不可连接的节点2. rostopic2.1 rostopic list(-v)2.…

【学习】深度强化学习

李宏毅深度学习一、深度强化学习Deep Reinforcement Learning (RL)什么是RL?(三步骤)计算loss计算A版本0版本1版本2版本32、梯度方法收集训练数据:探索3、actor criticMCTD版本3.5一、深度强化学习Deep Reinforcement Learning (RL) 什么是R…

【回答问题】ChatGPT上线了!给我推荐20个比较流行的图像语义分割模型

给我推荐20个比较流行的图像语义分割模型 在这里列出20个比较流行的图像语义分割模型:U-Net Mask R-CNN Fully Convolutional Network (FCN) SegNet DeepLab v3 PSPNet ENet ICNet RefineNet DenseASPP DenseNet LinkNet FPN BiSeNet ENAS Deeplab v3 GCN CRF-RNN …

Linux环境变量

文章目录什么是环境变量?什么是本地变量?如何获取环境变量?在shell中在程序中如何添加/删除环境变量&&本地变量?在shell中在程序中为什么环境变量能够被子进程继承?什么是环境变量? 环境变量是进程…

Vue初识系列【1】

文章目录一 前端体系1.1 前端三要素1.2 JavaScript 框架1.3 JavaScript 构建工具1.4 前端所需后端技术1.5 UI框架二 前后端分离史2.1 后端为主的 MVC 时代(web1.0)2.2 基于 AJAX 带来的 SPA 时代(web2.0)2.3 前端为主的 MV* 时代2.4 NodeJS 带来的全栈时…

OBS 进阶 音频面板优化

因为,面板高度就那么大,如果声音源很多的话,就有点乱。 优化目的:静音的,自动放在底部,这样,音频面板上面的都是没有静音的,也是我们最关注的部分。 目录 一、音频面板优化 1、不想要音频面板的title,将其去掉