码迷,mamicode.com
首页 > 编程语言 > 详细

Java修饰符/关键字

时间:2014-09-05 00:50:30      阅读:260      评论:0      收藏:0      [点我收藏+]

标签:blog   http   使用   java   ar   div   sp   log   html   

修饰符分类:

  • 权限修饰符:public、protected、default、private
  • 其他修饰符:abstract、static、final、transient、volatile、native、synchronized、strictfp

public:

  • public的使用对象:public可以修饰 类、抽象类、接口,还可以修饰 方法和变量
  • public修饰的对象可以被所以其他类访问

protected:

  • protected的使用对象:protected可以修饰 方法和变量,不能修饰类(外部类) ,内部类较特殊,后面单独研究。
  • protected修饰的对象可以被 同一包内的类或它的子类所访问

default:

  • default的使用对象:default可以修饰 类、抽象类、接口,还可以修饰 方法和变量
  • default修饰的对象可以被 同一包下的类访问

private:

  • private的使用对象:private可以修饰 方法和变量,不能修饰类(外部类)
  • private修饰的对象只在该类内部可见,外部不可访问,包括他的子类也不能访问、不能覆盖

换个角度看:

  • 类、抽象类、接口可以被public、default修饰
  • 方法和变量可以被public、protected、default、private所有权限修饰符修饰

Q&A:

  • Q:为什么类不能被private、protected修饰?
  • A:private好理解,private的类完全孤立不能为外界所访问,毫无用处;就类而言如果被protected修饰时等价于default,其他的包的类根本无法引用它而产生子类

abstract:

  • abstract用于修饰 类、接口或方法
  • abstract修饰的类即抽象类不能初始化,含未实现即abstract的方法
  • 所有的接口默认是abstract的,当然也可以显示用abstract修饰

final:

  • final用于修饰 类、变量或方法
  • final类不能被继承、final变量不能被修改、final方法不能被覆盖
  • final变量必须初始化,可以在声明时或构造函数里面赋值
  • final变量如果是引用变量,变量的value可变,但不能给引用重新赋值(新对象)
  • final变量如果同时被static修饰,那必须在声明时初始化,不能放到构造函数
  • 构造函数里面调用的方法最好是final的
  • Oracle Tutorial: http://docs.oracle.com/javase/tutorial/java/IandI/final.html
class FinalTest{
    private final List foo = new ArrayList();//

    public FinalTest()
    {
        //foo = new ArrayList(); 如果声明时没有初始化,可以在这里初始化
    }
    
    public void updateFoo(){
        foo.add( new String() );//可以改变被应用对象的值
        //foo = new ArrayList(); //编译错误,不能赋予新的对象
    }
}

static:

  • static可修饰 变量、方法块,不能修饰外部类
  • static的变量或方法属于具体的类,而不是某个实例,所有实例共享该变量或方法,实例可以改变static变量,也可以通过类名直接调用
  • static的方法不能直接访问 实例变量或方法,static方法里面也不能使用this

 

transient:

native:

volatile:

strictfp:

synchronized:

Java修饰符/关键字

标签:blog   http   使用   java   ar   div   sp   log   html   

原文地址:http://www.cnblogs.com/ibalintha/p/3957065.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!