1.作用域public、protected、private以及不写时的区别
public:公共权限 修饰类、成员变量、成员函数 可被任意类访问
protected:受保护权限 修饰成员变量、函数 可被同包访问,如果不是同包,则必须为该类的子类才可以访问
private: 私有权限 修饰成员变量、函数 只能在本类中访问
不写(default): 同包权限 修饰类、成员变量、函数 只能被同包的类访问
2.重写和重载的区别
重写Override:子类继承父类,并重写父类的方法
重载Overload:同一个类中,方法具有相同的名字,不同的参数列表(数量不同,类型不同,顺序不同)
注意*不能通过访问权限、返回类型和抛出的异常进行重载
3.使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用final关键字修饰一个变量时,是引用不能变,而引用的对象中的内容是可以变的
例如
final StringBuffer a = new StringBuffer("abcd");
//执行下列语句将报告编译期错误
a = new StringBuffer("efgh");
//但是,执行如下的语句可以通过编译:
a.append("efgh");
//有人在定义方法的时候,在方法的参数列表中使用如下的形式来阻止方法内部修改传入的参数对象:
public void method(final StringBuffer param){
}
//实际上,这是办不到的,在方法内部仍然可以通过param.append("a")的方法来修改参数对象