JAVA百科---[基础篇]修饰符
2017-01-01 18:42
253 查看
JAVA修饰符
1.访问控制修饰符
作用:用于控制被修饰变量,方法,类的可见范围;
附:
public的访问级别是最高的,其次是protected,默认和private;
成员变量和成员方法可以处于4个访问级别中的一个:公开,受保护,默认或私有;
存在继承关系时,父类不可以是private,因为子类无法继承;
顶层类可以处于公开或默认级别,顶层类不能被protected和private修饰;
局部变量不能被访问控制修饰符修饰;
2.abstract修饰符
1)抽象类不能被实例化,只能被子类调用(extends)(抽象类的构造方法定义为protected);
2)抽象类中可以没有抽象方法,但是包含了抽象方法的类必须定义为抽象类;
3)如果子类没有实现父类中所有的抽象方法,子类也必须定义为抽象类;
4)抽象类不能被定义为private,final,和static类型;
5)没有抽象的构造方法;
6)抽象方法没有方法体,如果一个方法没有方法体,那么该方法必须声明为抽象的方法;
7)非抽象类继承抽象类的时候,必须要把抽象类中的所有抽象方法实现;
3.final修饰符
1)final变量(也叫定名常量,简称常量)必须被显式初始化,并且只能被赋值一次值;
2)final修饰基本类型变量的时候, 该变量不能重新赋值;
3)final修饰引用类型变量的时候, 该变量不能重新指向其他对象;
4)final修饰的方法为最终的方法, 该方法不能被重写,但是可以被重载;
5)private类型的方法都默认为是final方法,因而也不能被子类重写;
6)final修饰的类为最终的类, 不能被继承;
4.static修饰符
1)如果声明了静态方法或变量,值是放在方法区,因为方法区是一个数据共享区;所以不管什么变量访问它,都是同一份;
2)在静态方法中不能直接访问实例方法(非静态方法)和实例变量(非静态变量);
3)在静态方法中不能使用this和super关键字;
4)静态方法不能被abstract修饰;
5)静态的成员变量可以使用类名或者是对象进行访问,非静态成员变量只能使用对象进行访问;
6)静态方法可以直接访问静态的成员,但是不能够直接访问非静态成员;非静态方法可以访问静态和非静态成员;
7)当类被加载时,静态代码块只能被执行一次.类中不同的静态方法代码块按他们在类中出现的顺序被依次执行;
8)当多个修饰符连用时,修饰符的顺序可以颠倒,不过作为普遍遵守的编码规范,通常把访问控制修饰符放在首位,其次是static或abstact修饰符,接着就是其他的修饰符;
附:
以下修饰符一起使用会导致编译错误:
1.abstract与private;
2.abstract与final;
3.abstract与static;
1.访问控制修饰符
作用:用于控制被修饰变量,方法,类的可见范围;
附:
public的访问级别是最高的,其次是protected,默认和private;
成员变量和成员方法可以处于4个访问级别中的一个:公开,受保护,默认或私有;
存在继承关系时,父类不可以是private,因为子类无法继承;
顶层类可以处于公开或默认级别,顶层类不能被protected和private修饰;
局部变量不能被访问控制修饰符修饰;
2.abstract修饰符
1)抽象类不能被实例化,只能被子类调用(extends)(抽象类的构造方法定义为protected);
2)抽象类中可以没有抽象方法,但是包含了抽象方法的类必须定义为抽象类;
3)如果子类没有实现父类中所有的抽象方法,子类也必须定义为抽象类;
4)抽象类不能被定义为private,final,和static类型;
5)没有抽象的构造方法;
6)抽象方法没有方法体,如果一个方法没有方法体,那么该方法必须声明为抽象的方法;
7)非抽象类继承抽象类的时候,必须要把抽象类中的所有抽象方法实现;
3.final修饰符
1)final变量(也叫定名常量,简称常量)必须被显式初始化,并且只能被赋值一次值;
2)final修饰基本类型变量的时候, 该变量不能重新赋值;
3)final修饰引用类型变量的时候, 该变量不能重新指向其他对象;
4)final修饰的方法为最终的方法, 该方法不能被重写,但是可以被重载;
5)private类型的方法都默认为是final方法,因而也不能被子类重写;
6)final修饰的类为最终的类, 不能被继承;
4.static修饰符
1)如果声明了静态方法或变量,值是放在方法区,因为方法区是一个数据共享区;所以不管什么变量访问它,都是同一份;
2)在静态方法中不能直接访问实例方法(非静态方法)和实例变量(非静态变量);
3)在静态方法中不能使用this和super关键字;
4)静态方法不能被abstract修饰;
5)静态的成员变量可以使用类名或者是对象进行访问,非静态成员变量只能使用对象进行访问;
6)静态方法可以直接访问静态的成员,但是不能够直接访问非静态成员;非静态方法可以访问静态和非静态成员;
7)当类被加载时,静态代码块只能被执行一次.类中不同的静态方法代码块按他们在类中出现的顺序被依次执行;
8)当多个修饰符连用时,修饰符的顺序可以颠倒,不过作为普遍遵守的编码规范,通常把访问控制修饰符放在首位,其次是static或abstact修饰符,接着就是其他的修饰符;
附:
以下修饰符一起使用会导致编译错误:
1.abstract与private;
2.abstract与final;
3.abstract与static;
相关文章推荐
- JAVA百科---[基础篇]标示符
- c#修饰符
- JAVA基础篇五(Java,C++中的容器类)
- 多线程的那点儿事(基础篇)
- 局部变量被内部类访问时必须用final修饰的问题
- protected修饰符详解-源于Cloneable接口
- C/C++函数调用约定与函数名称修饰规则探讨
- 修饰过的Dialog
- 计算机基础篇
- 基础篇..
- Spark修炼之道(基础篇)——Linux大数据开发基础:第二节:Linux文件系统、目录(一)
- Java基础篇--方法
- 特别的构造函数:构造函数的修饰
- Spark修炼之道(基础篇)——Linux大数据开发基础:第五节:vi、vim编辑器(一)
- Photoshop中修饰的10个技巧和诀窍
- java操作修饰Excel字体大小合并单元格背景色列宽
- 野人学Android基础篇之初探UI控件第四课--CheckBox
- 一个APP的迭代(2) - 基础篇
- JAVA基础篇:循环