面向对象---java代码块
概念:代码块是指用{}括起来的一段代码。
根据位置及声明的关键字不同,代码块可分为普通代码块、构造块、静态代码块、同步代码块4种。
1.普通代码块:
直接在方法中或在语句中定义
public class Test2 { public static void main(String[] args) {
{ //定义普通代码块
int x = 30; //定义局部变量
System.out.println("普通代码块 x="+x);
} int x = 100; //与局部变量名称相同
System.out.println("代码块之外 x="+x);
} }
运行结果:
普通代码块 x=30
代码块之外 x=100
2.构造块:
构造代码块是直接写在类中的代码块。
public class Demo {
{ //定义构造块
System.out.println("1、构造块。");
}
public Demo(){ //定义构造方法
System.out.println("2、构造方法");
} } public class Test2 { public static void main(String[] args) {
new Demo();
new Demo();
} }
执行结果:
1、构造块。
2、构造方法
1、构造块。
2、构造方法
从输出结果发现:构造块优于构造方法执行,而且每次实例化对象时都会执行构造块。
静态代码块:
静态代码块是使用static关键字声明的代码块。
public class Demo {
{ //定义构造块
System.out.println("1、构造块。");
}
static{
System.out.println("0、静态代码块");//定义静态代码块
}
public Demo(){ //定义构造方法
System.out.println("2、构造方法");
} } public class Test2 {
static{ //在主方法所在的类中定义静态代码块
System.out.println("在主方法所在的类中定义静态代码块");
}
public static void main(String[] args) {
new Demo(); //实例化对象
new Demo();
} }
执行结果:
在主方法所在的类中定义静态代码块
0、静态代码块
1、构造块。
2、构造方法
1、构造块。
2、构造方法
从输出结果发现:静态代码块优于主方法执行,在类中定义的静态代码块优于构造方法执行,而且不管产生多少个对象,静态代码块只执行一次。
4.同步代码块:
在代码块上加上synchronized关键字,主要使用在多线程上,此代码块称为同步代码块格式如下:
synchronized(同步对象){
需要同步的代码;
}
后续多线程再详细练习。
面向对象---java代码块的更多相关文章
- Java代码块详解
Java中代码块指的是用 {} 包围的代码集合,分为4种:普通代码块,静态代码块,同步代码块,构造代码块 普通代码块: 定义:在方法.循环.判断等语句中出现的代码块 修饰:只能用标签修饰 位置:普通代 ...
- java代码块的理解
最近在复习java基础,在看到java代码块的时候,忽然发现自己貌似对于java代码块一无所知,于是赶紧对着一些资料实战演练了一把. 对于java代码块,不难根据名称看出其实就是一些java语句的集合 ...
- java代码块执行顺序
父类 public class Father { public Father() { System.out.println("父类构造PUBLIC father"); } stat ...
- 夯实Java基础系列7:一文读懂Java 代码块和执行顺序
目录 Java中的构造方法 构造方法简介 构造方法实例 例 1 例 2 Java中的几种构造方法详解 普通构造方法 默认构造方法 重载构造方法 java子类构造方法调用父类构造方法 Java中的代码块 ...
- 夯实Java基础系列7:Java 代码块和执行顺序
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- Java 代码块详解
注:本文出自博主 Chloneda:个人博客 | 博客园 | Github | Gitee | 知乎 注:本文原链接:https://www.cnblogs.com/chloneda/p/java-c ...
- 0023 Java学习笔记-面向对象-初始化代码块
初始化代码块 在18篇-类的基本要素中说到,类的三大成员:成员变量.构造方法.方法,初始化代码块是类的第4个成员 初始化块用于对类或者对象的初始化, 一个类的初始化块可以有0-多个,按先后顺序执行 跟 ...
- 《java入门第一季》之面向对象(代码块一网打尽)
上一篇里面对代码块做出介绍,这里给出一个面试题,加深印象. 如有毁三观的地方,请见谅.拒绝黄赌毒 写程序的执行结果. class Student { static { System.out.print ...
- 08 java代码块的概述和分类
08.01_面向对象(代码块的概述和分类) A:代码块概述 在Java中,使用{}括起来的代码被称为代码块. B:代码块分类 根据其位置和声明的不同,可以分为局部代码块,构造代码块,静态代码块,同步代 ...
随机推荐
- HTTP协议与HTML form
HTTP协议与HTML form HTTP协议是应用层协议, 全称是HyperText Transfer Protocol HTTP协议是一种请求回应式的, 一个Request一定会有一个Respon ...
- 【转】在iOS开发中使用FMDB
本文转载自:唐巧的博客 在iOS开发中使用FMDB APR 22ND, 2012 前言 SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.iO ...
- 安装升级System.Web.Optimization.dll
今天在使用backload时,VS提示solution所引用的System.Web.Optimization.dll 版本低,编译不过,于是便删掉,从新添加引用,悲剧的是在添加引用窗口中没找到,在Nu ...
- JS函数实现金额小写转大写
///<summery>小写金额转化大写金额</summery> function AmountLtoU(amount) { if (isNaN(amount) || amou ...
- .NET 微信开放平台接口(接收短信、发送短信)
.NET 微信开放平台接口(接收短信.发送短信) 前两天做个项目用到了微信api功能.项目完成后经过整理封装如下微信操作类. 以下功能的实现需要开发者已有微信的公众平台账号,并且开发模式已开启.接口配 ...
- IOS开发之路三(XML解析之GDataXML的使用)
最近再做一个项目需要用到xml的解析.今天查了一些资料自己做了一个小demo.纯OC没有界面.. 在IOS平台上进行XML文档的解析有很多种方法,在SDK里面有自带的解析方法,但是大多情况下都倾向于用 ...
- MongoDB学习(翻译6)
接上篇.... 字段或属性层次的序列化选项 有许多种让你控制序列化的方式,上一节通过约定方法来控制序列化,你也可以通过代码配置或者成员映射或者使用特性来控制你的序列化,下面说道的序列化的各个方面,我们 ...
- ibatis-Spring 整合
这两天一直在研究ibatis与spring的整合 一个小小的demo搞的我头晕目眩的,但程序一旦跑起来了,突然有一种豁然开朗,重见天日,感觉生活很美好的感觉!,也许,这就是那一行行的代码带给我们的不同 ...
- mybatis3.4测试CRUD
导入包 H:\jar\jdbc\mysql-connector-java-5.1.13-bin.jarH:\jar\mybatis\mybatis-3.4.1\mybatis-3.4.1.jarH:\ ...
- 数据访问模式之Repository模式
数据访问模式之Repository模式 数据访问层无非就是对数据进行增删改查,其中增.删.改等我们可以抽象出来写一个公共的接口或抽象类来定义这些方法,并采用一个基类实现这些方法,这样该基类派生的子 ...