2016.2.24(类)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2016.2.24(类)相关的知识,希望对你有一定的参考价值。

访问修饰符private,默认,protected,public 在应用时的区别?

private:只有本类可以访问

默认:本类,同包可以访问

protected:本类,同包,子类,可以访问

public:可以任意对象访问。


封装有什么好处?

类的成员变量可以成为只读或者只写的

类可对存储在其成员变量中的内容有一个整体的规划

类的用户不需要知道类是如何存储数据的


静态

用static修饰的属性,所有对象共用,实际与对象无关
注意:1.与对象无关,与类有关 2.全类共享一个 3.预加载

static方法不能操作非static的属性和方法

原因:1.从设计上来说,static是类级别,与对象无关
2.从实现上来说,static修饰的是被首先加载的,因此非static的还没有被加载到内存,所以无法访问


什么时候使用static修饰?

工具类的工具方法可以使用 static修饰 (例:Math.random())

注意:static不能用来修饰构造,因为凡是static的都与对象无关,而构造是专门用来产生对象的


静态方法不可以访问非静态方法,非静态方法可以访问静态方法

 

实例初始化块:在产生对象的时候自动执行,在父类的构造方法之后,在本类的构造方法之前
使用量很少,因为完全可以把代码就写到本类构造方法前几行

静态初始化块:在加载的时候自动执行,只执行一次
使用量很高通常会把一些程序运行前的准备工作放在这里,让其加载期就完成


成员内部类的特点:1.可以有访问修饰符

2.class文件名格式:外部类类名+$+内部类类名.class

3.在本类的非静态任意方法中都可以new出来,但是其他类必须用外部对象.new出来内部对象

局部内部类的特点:1.不能有访问修饰符

2.class文件名:外部类类名+$+序号+内部类类名.class

3.只能本方法产生对象,然后使用


静态内部类(成员内部类特例):在本来的人任意方法中都已new出来,在第三方中要new出来,无需产生外部对象,只需要外部类类名.的方法就可以了

匿名内部类(局部内部类特例):由于没有类名,所以是在产生对象的时候用语句告诉JVM它的结构,只能用1次。需注意分号,括号的位置。

以上是关于2016.2.24(类)的主要内容,如果未能解决你的问题,请参考以下文章

elasticsearch代码片段,及工具类SearchEsUtil.java

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

为啥片段类应该是公开的?

片段内部静态类和gradle问题

从片段类中的对话框添加项目到recyclerview。

如何从片段内的列表视图打开链接网址?