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面向对象-代码块的更多相关文章

  1. java静态代码块/静态属性、构造块、构造方法执行、main方法、普通代码块的顺序

    java静态代码块/静态属性.构造块.构造方法执行.main方法.普通代码块的顺序 这也是在笔试中的一个重要的考点,就有一个输出语句让你写出输出的结果. 理论知识: 静态代码块是:属于类的,在类加载时 ...

  2. java 静态代码块和spring @value等注解注入顺序

      java 静态代码块和spring @value等注解注入顺序 问题所在 先上代码 java方法 @Value("${mf.cashost}") public static S ...

  3. [Java基础]代码块及java反编译

    块的作用域:   块(即复合语句)是指一对花括号括起来的若干条简单的java语句.块确定了变量的作用域.一个块可以嵌套在另一个块中.但是,在嵌套的两个块中声明同名的变量时应注意,块中变量申明在块外变量 ...

  4. java基础--java静态代码块和静态方法的区别、static用法

    转载自: http://blog.sina.com.cn/s/blog_afddb8ff0101aqs9.html 静态代码块:有些代码必须在项目启动的时候就执行,这种代码是主动执行的(当类被载入时, ...

  5. java静态代码块、初始化块和构造方法的执行顺序

    分析:当执行new Child()时,它首先去看父类里面有没有静态代码块,如果有,它先去执行父类里面静态代码块里面的内容,当父类的静态代码块里面的内容执行完毕之后,接着去执行子类(自己这个类)里面的静 ...

  6. java构造代码块详解

    一.简介 首先说一下,Java中有哪些代码块. 普通代码块 就是在方法后面使用"{}"括起来的代码片段,不能单独执行,必须调下其方法名才可以执行. 静态代码块 在类中使用stati ...

  7. java静态代码块、普通代码

    参考文章:http://www.cnblogs.com/qinpengming/p/5227227.html Java中经常有一些静态块,这是用来在生成类之前进行的初始化,无论java还C++语言中的 ...

  8. Java——final代码块是否一定被执行---18.11.08

    辨析:final语句块一定会被执行吗? 答案是 不一定!!! 至少有两种情况下finally语句是不会被执行的: (1)try语句没有被执行到,如在try语句之前return就返回了,这样final语 ...

  9. java静态代码块、静态方法、静态变量、构造代码块、普通代码块

    一.静态代码块 1.在java类中(方法中不能存在静态代码块)使用static关键字和{}声明的代码块: public class CodeBlock{ static{ System.out.prin ...

随机推荐

  1. IOS-环信

    一.即时通讯 即时通讯,又称实时通讯 即时通信(Instant Messaging,简称IM)是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息.文件.语音与视频交流 即时通讯在开发中使用的 ...

  2. IOS-Alcatraz(插件管理工具)

    一.简单说明 Alcatraz 是一款 Xcode的插件管理工具,可以用来管理XCode的 插件.模版以及颜色配置的工具. 二.如何安装 1.github地址:https://github.com/a ...

  3. Ajax传输对象,集合或数组。

    传输单个对象时: servlet页面 package com.itnba.maya.a; import java.io.IOException; import javax.servlet.Servle ...

  4. RESTful api 与 Django的 restfulframework

    RESTful api 与 Django的 restfulframework 1 restful api 的基本概念 一类的资源使用一个url,不同的操作通过 请求方式处理 api -- >&g ...

  5. 在 Ubuntu 上搭建 Hadoop 分布式集群 Eclipse 开发环境

    一直在忙Android FrameWork,终于闲了一点,利用空余时间研究了一下Hadoop,并且在自己和同事的电脑上搭建了分布式集群,现在更新一下blog,分享自己的成果. 一 .环境 1.操作系统 ...

  6. [置顶] 个人博客上线!欢迎来访~ http://onlyloveyd.cn/

    简介 Hexo + Github + 个人域名 构建静态博客系统. 构建方法 参考 https://yq.aliyun.com/articles/64953 个人博客网站 Cherish Androi ...

  7. python Beautiful Soup的使用

    上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表 达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫B ...

  8. 组件与.NET互操作

    组件 1.何谓组件技术? 组件技术就是利用某种编程手段,将一些人们所关心的,但又不便于让最终用户去直接操作的细节进行了封装,同时对各种业务逻辑规则进行了实现,用于处理用户的内部操作细节,甚至于将安全机 ...

  9. hexo配置主题发表文章

    将本地hexo博客部署到github上了,如果想换我们自己喜欢的主题(默认为landscape),同时也要发表发表文章呢,下面给介绍下: 1,进入hexo官网,预览自己想要的主题,https://gi ...

  10. RMAN 增量备份 脚本

    ################################################################## ##    rman_backup.sh              ...