对Java中修饰符的学习

来源:互联网 发布:淘宝详情页视频下载 编辑:程序博客网 时间:2024/06/11 16:24
当我开始学习安卓开发时,我发现自己对Java面向对象的知识几乎忘完了。安卓是用Java语言来写的,里面用到大量的面向对象思想。忘完了可不能,模模糊糊的学下去,会越来越吃力,所以我重新学了一次,在此写一篇博客来上传学习中的笔记。

修饰符是用来定义类、方法或者变量的符号,通常放在语句的前面。
Java中的修饰符可分为两种,一种是访问修饰符,另一种是非访问修饰符。

一、访问修饰符

访问修饰符,顾名思义,就是用来控制访问权限的修饰符。访问修饰符有四种,所以Java支持四钟不同的访问权限。

修饰符        当前类  同一包内     子孙类     其他包
public           Y               Y                  Y             Y
protected     Y               Y                  Y             N
default          Y              Y                   N            N
private          Y              N                   N            N

其中default是什么也不写,缺省。

引用菜鸟教程中大白小爱的笔记:
整个世界都打包成一块,同时划分为四个层次: 联合国(public)【其他包】、国家(protected)【继承子孙】、洲际(default)【同一包】、个人(private)【当前类】。联合国制定规则所有人都可以用,国家制定的只有在国家内可以用,各联邦洲因地制宜有制定当地民法,个人制定的就给个人使用。

值得注意的地方有:
1.Java文件中只能含有一个public类,这是因为Java程序是从一个public类的main函数开始执行。
2.Private 访问修饰符的使用主要用来隐藏类的实现细节和保护类的数据,私有访问修饰符;

3.被声明为 public 的类、方法、构造方法和接口能够被任何其他类访问,公有访问修饰符;

4.protected 访问修饰符不能修饰类和接口,方法和成员变量能够声明为 protected,但是接口的成员变量和成员方法不能声明为 protected,受保护访问修饰符;

二、非访问修饰符

非访问修饰符有五种,着重介绍前三种,以后学到线程再来更新后两个,个人认为较难理解的是static修饰符。

static 修饰符,用来修饰类方法和类变量。

final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

abstract 修饰符,用来创建抽象类和抽象方法。

synchronized 和 volatile 修饰符,主要用于线程的编程。

引用菜鸟教程中Charlie Lee的笔记:
怎么理解静态变量(static)呢?简单来说静态变量就是一个类的公有属性。在这里可以打个拙劣的比方:假设"班里的学生"是一个类,班里的任何一个同学都相当于一个对象。那么所有学生的学费是一样的对吧?"学费"就相当于一个"静态变量",其特征是它不属于任何一个"对象"(即学生)的专有属性,是大家"公有"的,若是变了,那就所有的同学的学费都会变。我们假设每个同学都有修改学费的权力,那么任何一个同学修改了学费(这个静态变量),所有同学的学费就都会变。
另外:静态方法只能使用类的静态变量。

引用菜鸟教程中dsisdf的笔记:
1.static全局变量与普通的全局变量:static全局变量只初使化一次,防止在其他文件单元中被引用;
2.static局部变量和普通局部变量:static局部变量只被初始化一次,下一次依据上一次结果值;
3.static函数与普通函数:static函数在内存中只有一份,普通函数在每个被调用中维持一份拷贝。

笔记来源于菜鸟教程:http://www.runoob.com/java/java-modifier-types.html
原创粉丝点击