看了一下其他的博客,关于这个知识点列举的很详细,但大部分看起来还都是初学者的理解,只是把一些常见概念和用法罗列上去。
下面我也总结了一些常见知识点,以便大家写程序或者做面试题、考试题的时候少走一些弯路。
-
this关键字不能在static方法中使用(static是跟随类一起加载的,而this指向实例化对象的某个变量或方法,前提是被实例化,所以this作用域与static不同,也就不能使用)
-
final变量如果是基本类型则初始化后不可以改变,但如果是引用类型,引用类的值可以改变(不要以为final后就完全不可变了)
-
局部变量不能用private、protected、static等修饰,并且没有必要
-
class不能用protected、private修饰(private后,那么该类不能被访问,也就没意义了,假如protected修饰后,是所在的包的子类可以访问,由于包没有子类,所以也没有意义)
-
如果类没有修饰符,默认为default,作用域为当前类和包,class只有两种修饰符,default和public
-
interface不能用private、protected、static修饰,也不能用synchronized修饰
-
接口中成员变量默认为public static final
-
接口只能用public和default(默认)修饰
-
接口中的方法只有方法名和返回值,默认为public abstract,可以不写
-
成员式内部类可以使用各种修饰符,可以把该内部类视作该类的一个特殊的变量,所以可以用各种修饰符包括 public、protected、private、static、final 和 abstract,也可以不写。
-
非静态内部类不能声明静态变量。
-
匿名内部类有两种,一种是实现接口的,一种是继承父类的,且都为final类
-
构造方法不能用static、final修饰(.构造器不是通过继承得到的,所以没有必要把它声明为final的;构造器总是关联一个对象而被调用,所以把它声明为static是没有意义的)
插一个参考表格