chen_li

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

一、this关键字的概述和应用(在本类中使用到了本类的对象就使用this)

1、在类中this的使用

    1)用来区分成员变量和局部

  2)在构造函数中调用构造函数(这种方式this只能放在第一行而且只能使用一次this调用其它的构造方法)

2、在类中的各个代码块

1)静态代码块

静态代码块:用staitc声明,随着类的加载而执行,只执行一次

  1. 它是随着类的加载而执行,只执行一次,并优先于主函数。具体说,静态代码块是由类调用的。类调用时,先执行静态代码块,然后才执行主函数的。
  2. 静态代码块其实就是给类初始化的,而构造代码块是给对象初始化的
  3. 静态代码块中的变量是局部变量,与普通函数中的局部变量性质没有区别。
  4. 一个类中可以有多个静态代码块

2)构造代码块

类中直接用{}定义,每一次创建对象时执行。可以给所有的对象进行初始化

  1. 构造代码块的作用是给对象进行初始化。
  2. 对象一建立就运行构造代码块了,而且优先于构造函数执行。这里要强调一下,有对象建立,才会运行构造代码块,类不能调用构造代码块的,而且构造代码块与构造函数的执行顺序是前者先于后者执行
  3. 构造代码块与构造函数的区别是:构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化,因为构造函数是可以多个的,运行哪个构造函数就会建立什么样的对象,但无论建立哪个对象,都会先执行相同的构造代码块。也就是说,构造代码块中定义的是不同对象共性的初始化内容。

 例子如下:

 

 运行结果:

结果分析:

1)代码执行顺序:静态块代码>main()>构造块>构造函数

2)静态代码块只能执行一次,而构造块和构造函数都可以执行多次  

 

3)匿名函数(没有名字的对象 ,定义对象的简写格式)

1):匿名对象应用场景
    调用方法,仅仅只调用一次的时候。
    那么,这种匿名调用有什么好处吗?
    节省代码 
    注意:调用多次的时候,不适合。匿名对象调用完毕就是垃圾。可以被垃圾回收器回收。
   匿名对象可以作为实际参数传递
  例子如下:

由于匿名对象只能调用一次,那么想调用两次,只能是再次匿名一个对象,在这里不是一个对象而是两个对象

4)private关键字
private关键字特点
    * a:是一个权限修饰符
    * b:可以修饰成员变量和成员方法
    * c:被其修饰的成员只能在本类中被访问

 

posted on 2017-11-05 00:25  chen_li  阅读(126)  评论(0编辑  收藏  举报