AJPFX关于代码块的总结
代码块:
{
执行语句;
}
(1) 当出现在局部位置时, 为局部代码块.
局部位置: 如语句块中, 函数中, 构造代码块中, 静态代码块中等.
(2) 当出现在成员位置且不被static修饰时, 为构造代码块.
(3) 当出现在成员位置且被static修饰时, 为静态代码块
1. 局部代码块
可用于定义局部变量的生命周期.
也即通过局部代码块可以控制局部变量的生命周期.
变量的生命周期{}
"变量的作用域: 声明变量的一对{}之间"这句话对于局部代码块来说,
声明在局部代码块中的变量, 其声明周期仅限于该局部代码块. // 局部代码块中的局部变量
2. 构造代码块/instance initializer
构造代码块用于完成所有实例的初始化工作.
每创建一个该类的实例对象, 便顺序执行一次该类的所有构造代码块.
构造代码块在对象的生命周期内肯定执行且只执行一次.
一个类可以有多个构造代码块, 各构造代码块按照声明的先后顺序执行.
"变量的作用域: 声明变量的一对{}之间"这句话对于构造代码块来说,
声明在构造代码块中的变量, 其声明周期仅限于该构造代码块. // 构造代码块中的局部变量
3. 静态代码块/ static initializer
静态代码块用于完成类的初始化工作.
当且仅当类加载时执行. 在类的生命周期内只执行一次.
一个类可以有多个静态代码块, 各静态代码块按照声明的先后顺序执行.
"变量的作用域: 声明变量的一对{}之间"这句话对于静态代码块来说,
声明在静态代码块中的变量, 其声明周期仅限于该静态代码块. // 静态代码块中的局部变量
--------------------------------------------------------------------------------
变量的作用域: 声明变量的一对{}之间.
具体情况如下:
声明在语句块中的变量, 其作用域为该语句块; // 局部变量
声明在函数中的变量, 其作用域为该函数; // 局部变量
声明在构造代码块中的变量, 其作用域为该构造代码块; // 局部变量
声明在静态代码块中的变量, 其作用域为该构造代码块; // 局部变量
声明在局部代码块中的变量, 其作用域为该局部代码块; // 局部变量
(局部代码块可以出现在语句块中, 函数中, 构造代码块中, 静态代码块中)
声明在类成员位置上的变量, 其作用域为整个类. // 成员变量
AJPFX关于代码块的总结的更多相关文章
- AJPFX关于面向对象中的对象初始化整理,综合子父类、代码块等等
今天总结了一下子父类当中含有静态代码块.代码块.构造函数.成员变量.子类复写父类方法时子类的初始化过程,把思路理清一下 class Fu { //父类成员变量 private int num = 3; ...
- 【swift】BlockOperation和GCD实用代码块
//BlockOperation // // ViewController.swift import UIKit class ViewController: UIViewController { @I ...
- About 静态代码块,普通代码块,同步代码块,构造代码块和构造函数的纳闷
构造函数用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种.特点:1:该函数的名称和所在类的名称相同.2:不需要定义返回值类型.3:该函数没有具体的返回值.记住:所有对象创 ...
- Xcode自定义代码块
到现在才发现原来Xcode有自定义代码块这么神奇的功能,能简化很多无聊的敲重复代码的工作,真是感叹我怎么才知道!!! 具体的设置流程见:http://nshipster.cn/xcode-snippe ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 10、代码块、构造代码块、静态代码块及main方法之间的关系
1.普通代码块: 在方法或语句中出现在{}之间的类容就称为普通代码块,简称代码块.普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定--“先出现先执行”,即顺序执行. /*下面第一个类时合法的 ...
- xcode添加快捷代码块
添加快捷代码块 在开发过程中,一些常用的代码段,我们可以设置成快捷代码段来快速实现代码的编写. 如上图中的属性的设置,它们都有相同重复的代码@property (nonatomic, strong), ...
- java-并发-保护代码块
浏览以下内容前,请点击并阅读 声明 线程经常需要协调其动作,最常用的协调方法就是保护代码块,该代码块以一个条件判断开始,当判断为true时才能开始执行. 假设一个方法guradedJoy必须等到变量j ...
- 匿名对象 构造方法 重载 构造代码块 this 关键字
一.匿名对象 1.匿名对象 :没有名字对象 2.匿名对象的使用注意点: 1.我们一般不会用匿名对象给属性赋值,无法获取属性值. 2.匿名对象永远都不可能事一个对象. 3.匿名对象的好处 : 书写简单. ...
随机推荐
- 在 Ubuntu 开启 GO 程序编译之旅
本文将使用 putty 连接到一台阿里云 Ubuntu 16.04 服务器,在其上安装 go 语言的编译环境,旨在呈现从安装到"你好,世界!"涉及的方方面面,希望完成这个过程无须觅 ...
- PHP引用是什么?
引用是什么 在 PHP 中引用意味着用不同的名字访问同一个变量内容.这并不像 C 的指针,替代的是,引用是符号表别名.注意在 PHP 中,变量名和变量内容是不一样的,因此同样的内容可以有不同的名字.最 ...
- Codeforces Little Dima and Equation 数学题解
B. Little Dima and Equation time limit per test 1 second memory limit per test 256 megabytes input s ...
- vc字符串转换处理:(绝对精华,收集所有的例子)
vc字符串转换处理:(绝对精华,收集所有的例子) 1.头文件中要定义宏; #define UNICODE #define _UNICODE //////////// ...
- js常用操作事件
触发描述 方法 用法 点击 onclick="method();" 变换 onchange="testChange();" 双击 ondblclick= ...
- YTU 1002: Home Work
1002: Home Work 时间限制: 1000 Sec 内存限制: 64 MB 提交: 288 解决: 41 题目描述 临近开学了,大家都忙着收拾行李准备返校,但I_Love_C却不为此担心 ...
- bzoj 4603 平凡的骰子
题目大意: 思路: 首先我们需要求出整个凸多面体的重心 可以通过把多面体剖分为四面体 求出每个四面体的重心 四面体的重心为四个点的坐标和/4 对每个四面体的重心 加上它们体积的权 加权平均数即为整个的 ...
- robot设置chrome mobile emulation
https://www.testwo.com/article/361 http://blog.csdn.net/huilan_same/article/details/52856200 http:// ...
- Struts2自定义返回Json类型result
本来Struts2有自己的json类型的返回结果,并提供了插件,但是它有一个问题,那就是它会将所有序列化的字段都返回,如果想要制定返回Action的某一个属性,则需要在配置result时,配置参数(这 ...
- Linux系统挂载NTFS文件系统(转载)
转自:http://hermesbox.blogbus.com/logs/47386987.html 今天尝试并成功的将一块500G的移动硬盘挂载到了RHEL5的系统上,甚感欣慰.想到也许以后自己或其 ...