博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
匿名对象、内部类、匿名内部类、局部代码块、构造代码块、静态代码块
阅读量:5830 次
发布时间:2019-06-18

本文共 2003 字,大约阅读时间需要 6 分钟。

一、匿名对象

  1、定义:

      没有引用变量的对象。比如  new Person()。

 

二、内部类:

  1、定义:定义在类中的类

  2、分类:

    1)成员内部类:

      定义格式:

public class Class1 {    private class Class2{            }}

      访问方式: 

Class2 c2 = new Class1().new Class2();

    2)局部内部类

      定义格式及访问方式:   

public static void show(){        class Class3{                    }        new Class3();    }

      注:内部类不能使用public关键字修饰,内部类的修饰符参考局部变量。

三、匿名内部类

  匿名内部类是最常用到的内部类,它属于局部内部类的一种。

  1、使用场景:

    临时定音鼓IE某一指定类型的子类。

    定义后即刻创建刚刚定义的这个子类对象

  2、作用和定义格式:

    作用:匿名内部类是创建某个类型子类对象的快捷方式。

    格式:   

      new 父类或接口(){          //进行方法重写      };

    代码演示:

//已经存在的父类:public abstract class Person{    public abstract void eat();}//定义并创建该父类的子类对象,并用多态的方式赋值给父类引用变量Person  p = new Person(){    public void eat() {        System.out.println(“我吃了”);}};//调用eat方法p.eat();

 三、局部代码块、构造代码块、静态代码块

  1、局部代码块:   

    局部代码块是定义在方法或语句中   

    特点:

       以”{}”划定的代码区域,此时只需要关注作用域的不同即可

      方法和类都是以代码块的方式划定边界的

    代码演示:

class Demo{    public static void main(String[] args)    {        {                  int x = 1;                 System.out.println("普通代码块" + x);        }        int x = 99;        System.out.println("代码块之外" + x);    }} //  结果:  普通代码块1   //       代码块之外99

    2、构造代码块:  

        构造代码块是定义在类中成员位置的代码块

        特点:

          优先于构造方法执行,构造代码块用于执行所有对象均需要的初始化动作

           每创建一个对象均会执行一次构造代码块。

        代码演示:     

public class Person {    private String name;    private int age;    //构造代码块    {        System.out.println("构造代码块执行了");    }    Person(){        System.out.println("Person无参数的构造函数执行");    }    Person(int age){        this.age = age;        System.out.println("Person(age)参数的构造函数执行");    }}

    3、静态代码块     

      静态代码块是定义在成员位置,使用static修饰的代码块。

      特点:

        它优先于主方法执行、优先于构造代码块执行,当以任意形式第一次使用到该类时执行。

         该类不管创建多少对象,静态代码块只执行一次。

        可用于给静态变量赋值,用来给类进行初始化。

      代码演示:     

public class Person {    private String name;    private int age;     //静态代码块    static{        System.out.println("静态代码块执行了");    }}

 

 

转载于:https://www.cnblogs.com/LaowangNext/p/10189564.html

你可能感兴趣的文章
此博客不再发表对自己私事的看法
查看>>
导致Asp.Net站点重启的10个原因
查看>>
【PMP】Head First PMP 学习笔记 第一章 引言
查看>>
抓住云机遇编排工作 搞定复杂IT工作流
查看>>
MYSQL的longtext字段能放多少数据?
查看>>
MTK 平台上如何给 camera 添加一种 preview size
查看>>
云计算最大难处
查看>>
关于数据分析思路的4点心得
查看>>
Memcached安装与配置
查看>>
美团数据仓库的演进
查看>>
SAP被评为“大数据”预测分析领军企业
查看>>
联想企业网盘张跃华:让文件创造业务价值
查看>>
记录一次蚂蚁金服前端电话面试
查看>>
直播源码开发视频直播平台,不得不了解的流程
查看>>
Ubuntu上的pycrypto给出了编译器错误
查看>>
聊聊flink的RestClientConfiguration
查看>>
在CentOS上搭建git仓库服务器以及mac端进行克隆和提交到远程git仓库
查看>>
測試文章
查看>>
Flex很难?一文就足够了
查看>>
【BATJ面试必会】JAVA面试到底需要掌握什么?【上】
查看>>