Java中类,属性,方法修饰符
- public
公共访问权限,不但在本应用中可以放问,其他应用也可以访问。接口中的方法默认都是public的
- protected
被protected修改的:可以被本类,本类的子类(可以在同一个包下也可以不在同一个包下)和与本类在同一个包下的其他类都可以访问本类
- 默认
默认是指没有任何修改符,这种情况下,可以被本类,与本类处在同一个包下的类访问(父包和子包均无法访问),注意如果子类和自己不在同一个包下也是不可以访问本类的
- private
表示私有的意思,类不会使用这个修改符来修改,一个不能被任何外界访问的类是没有任何意义的。但是属性和方法可以被private,表示只能在本类中访问,不能被外界访问
- abstract
表示抽象的。被此关键自修饰的类是抽象类;被此关键字修饰的方法是抽象方法;此关键字不能修改成员变量。
- static
- final
修饰类
表明该类不可被继承,类中的所有成员方法都隐式的被指定为final方法,成员变量则可以定义为final,也可以不定义为final
修饰方法
final 修饰方法,方法不能被重写,防止任何继承类修改它的含义。
提高效率:在方法前面添加final进行修饰可以提高效率,其原理是基于内联/内嵌(inline)机制,它会使你在调用final方法时,直接将方法的主体插入到调用处,从而省去调用函数所花费的开销。但是如果方法过于庞大或者其中有循环的话,这种提高效率的方法可能会失效。
修饰变量
final 修饰变量,变量不能被重新赋值。当用final作用于类的成员变量时,成员变量(注意是类的成员变量,局部变量只需要保证在使用之前被初始化赋值即可)必须在定义时或者构造器中进行初始化赋值,而且final变量一旦被初始化赋值之后,就不能再被赋值了。
- 如果修饰的是基本类型数据变量,则该变量的值不能发生改变;
- 如果修饰的是引用类型数据变量,则该变量不会内二次初始化;由于引用类型数据变量被初始化后,其值是一个地址,所以不会被二次初始化,即地址不改变,虽然不能再指向其他对象,但是它指向的对象的内容是可变的。