Java面向对象-代码块
Java面向对象-代码块
代码块主要就是通过{}花括号 括起来的代码;
主要分为 普通代码块 构造块 静态代码块三类。后面学到线程还有一个同步代码块,到时候再说;
普通代码块:仅仅是花括号括起来的代码块,个人感觉作用不大,我们来看一个实例:
package com.java1234.chap03.sec07;
public class Demo1 {
public static void main(String[] args) {
int a=1;
/**
* 普通代码块
*/
{
a=2;
System.out.println("普通代码块");
}
System.out.println("a="+a);
}
}
运行输出:
普通代码块
a=2
构造块 构造块作用就是扩展构造器功能 每次实例化对象都会执行构造块里的内容:
我们来看一个实例:
package com.java1234.chap03.sec07;
public class Demo2 {
/**
* 构造块
*/
{
System.out.println("通用构造块!");
}
/**
* 构造方法一
*/
public Demo2(){
System.out.println("构造方法一");
}
/**
* 构造方法二
*/
public Demo2(int i){
System.out.println("构造方法二");
}
/**
* 构造方法三
*/
public Demo2(int i,int j){
System.out.println("构造方法三");
}
public static void main(String[] args) {
new Demo2();
new Demo2(1);
new Demo2(1,2);
}
}
运行输出:
通用构造块!
构造方法一
通用构造块!
构造方法二
通用构造块!
构造方法三
我们发现 每次调用构造方法 都会先执行 构造块
静态代码块
{}花括号前加static修饰词 在类加载的时候执行 而且只执行一次
我们看一个实例:
package com.java1234.chap03.sec07;
public class Demo3 {
/**
* 静态代码块 类加载的时候执行
*/
static{
System.out.println("静态代码块!");
}
/**
* 构造块
*/
{
System.out.println("通用构造块!");
}
/**
* 构造方法一
*/
public Demo3(){
System.out.println("构造方法一");
}
/**
* 构造方法二
*/
public Demo3(int i){
System.out.println("构造方法二");
}
/**
* 构造方法三
*/
public Demo3(int i,int j){
System.out.println("构造方法三");
}
public static void main(String[] args) {
new Demo3();
new Demo3(1);
new Demo3(1,2);
}
}
输出:
静态代码块!
通用构造块!
构造方法一
通用构造块!
构造方法二
通用构造块!
构造方法三
Java面向对象-代码块的更多相关文章
- java静态代码块/静态属性、构造块、构造方法执行、main方法、普通代码块的顺序
java静态代码块/静态属性.构造块.构造方法执行.main方法.普通代码块的顺序 这也是在笔试中的一个重要的考点,就有一个输出语句让你写出输出的结果. 理论知识: 静态代码块是:属于类的,在类加载时 ...
- java 静态代码块和spring @value等注解注入顺序
java 静态代码块和spring @value等注解注入顺序 问题所在 先上代码 java方法 @Value("${mf.cashost}") public static S ...
- [Java基础]代码块及java反编译
块的作用域: 块(即复合语句)是指一对花括号括起来的若干条简单的java语句.块确定了变量的作用域.一个块可以嵌套在另一个块中.但是,在嵌套的两个块中声明同名的变量时应注意,块中变量申明在块外变量 ...
- java基础--java静态代码块和静态方法的区别、static用法
转载自: http://blog.sina.com.cn/s/blog_afddb8ff0101aqs9.html 静态代码块:有些代码必须在项目启动的时候就执行,这种代码是主动执行的(当类被载入时, ...
- java静态代码块、初始化块和构造方法的执行顺序
分析:当执行new Child()时,它首先去看父类里面有没有静态代码块,如果有,它先去执行父类里面静态代码块里面的内容,当父类的静态代码块里面的内容执行完毕之后,接着去执行子类(自己这个类)里面的静 ...
- java构造代码块详解
一.简介 首先说一下,Java中有哪些代码块. 普通代码块 就是在方法后面使用"{}"括起来的代码片段,不能单独执行,必须调下其方法名才可以执行. 静态代码块 在类中使用stati ...
- java静态代码块、普通代码
参考文章:http://www.cnblogs.com/qinpengming/p/5227227.html Java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的 ...
- Java——final代码块是否一定被执行---18.11.08
辨析:final语句块一定会被执行吗? 答案是 不一定!!! 至少有两种情况下finally语句是不会被执行的: (1)try语句没有被执行到,如在try语句之前return就返回了,这样final语 ...
- java静态代码块、静态方法、静态变量、构造代码块、普通代码块
一.静态代码块 1.在java类中(方法中不能存在静态代码块)使用static关键字和{}声明的代码块: public class CodeBlock{ static{ System.out.prin ...
随机推荐
- PhantomJS 和Selenium模拟页面js点击
由于自己不怎么会javascripts,无法找全所有的参数进行模拟提交,所以只能寻求Selenium和PhantpmJS的方式. 先说下ubuntu上怎么安装相应的环境,尤其PhantomJS安装比较 ...
- Xcode And iOS9新特性
Xcode And iOS9 1. Xcode7 新特性 > 可直接在真机上运行自己的应用,只需要有苹果账号,无需购买苹果开发者账号. > 可设置在出现 EXC_BAD_ACCESS 错误 ...
- hp g6 2328tx 加装ssd 机械硬盘安装到光驱位置 问题小结
惠普 g6 笔记本从13年入手至今,三年有余,性能啥的开始跟不上了,所有入手了一块ssd,闪迪(sanDisk)加强版 240G的固态硬盘,准备升下级.狗东下午下单,第二天早上7点多到的,把老硬盘换下 ...
- Arcgis For Android之离线地图实现的几种方式
为什么要用,我想离线地图的好处是不言而喻的,所以很多人做系统的时候都会考虑用离线地图.在此,我给大家介绍几种Arcgis For Android下加载离线地图的方式. 在Arcgis For Andr ...
- 【Java 并发】Executor框架机制与线程池配置使用
[Java 并发]Executor框架机制与线程池配置使用 一,Executor框架Executor框架便是Java 5中引入的,其内部使用了线程池机制,在java.util.cocurrent 包下 ...
- 拦截器springmvc防止表单重复提交【1】
[参考博客:http://www.cnblogs.com/hdwpdx/archive/2016/03/29/5333943.html] springmvc 用拦截器+token防止重复提交 首先,防 ...
- 51nod 1495 中国好区间
阿尔法在玩一个游戏,阿尔法给出了一个长度为n的序列,他认为,一段好的区间,它的长度是>=k的,且该区间的第k大的那个数,一定大于等于T.那么问题来了,阿尔法想知道有多少好的区间. 由于阿尔法的序 ...
- CoreDNS kubernetes 安装使用
kubernetes 以前是skydns 后面变为 dnsmasq,coredns 也是一个不错的工具 1. 准备环境 安装 kubernetes 配置 kubelet 的cluster-dns 2 ...
- oracle truncate闪回数据库恢复
1.创建试验表 conn scott/tiger create table truncate_test as select * from user_objects; select count(*) f ...
- bzoj 4555 [Tjoi2016&Heoi2016]求和——NTT+第二类斯特林数
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4555 第二类斯特林数展开式: \( S(i,j) = \frac{1}{j!} \sum\l ...