1、什么是实例成员和类成员?
实例成员中是属于对象的,即属于对象级别的,它包括实例成员属性(也称为实例成员变量)和实例成员方法,只有创建了对象之后才能访问实例成员属性和实例成员方法。
类成员是属于类的,类成员包括类成员属性(也称为类成员变量)和类成员方法,通过类名可以直接访问类成员变量和调用类成员方法。类成员不需要伴随对象,也就是说即使没有创建对象,也能够引用类成员,类成员也可以通过对象引用。类成员需要用关键字static标识,也称为静态成员。
2、成员变量与局部变量
在类体中变量定义部分所声明的变量为类的成员变量,它在整个类内都有效;而在方法中声明的变量为局部变量,它只在定义它的成员方法内才有效,声明成员变量不能使用修饰符和static。
声明成员常量和声明局部常量,虽然都使用final关键字,但声明成员常量时必须为该常量赋值,而声明局部变量时可以先不为其赋值。
当局部变量与成员变量名字相同时,成员变量就会被隐藏,这时如果想使用成员变量,就必须使用关键字this。
(修饰符:
修饰符 | 类 | 成员访求 | 构造方法 | 成员变量 | 局部变量 | |
abstract(抽象的) | √ | √ | - | - | - | |
static (静态的) | - | √ | - | √ | - | |
public(公共的) | √ | √ | √ | √ | - | |
protected(受保护的) |
| √ | √ | √ | - | |
private(私有的) | - | √ | √ | √ | - | |
synchronized(同步的) | - | √ | - | - | - | |
native(本地的) | - | √ | - | - | - | |
transient(暂时的) | - | - | - | √ | - | |
volatie(易失的) | - | - | - | √ | - | |
final(不要改变的) | √ | √ | - | √ | √ |
访问修饰符 | 同一个类 | 同包 | 不同包,子类 | 不同包,非子类 |
private | √ |
|
|
|
protected | √ | √ | √ |
|
public | √ | √ | √ | √ |
默认 | √ | √ |
|
|
完)
2、break、continue、default语句
1)break:在switch语句中用于中止下一个case比较,在循环语句中用于强行退出循环。
2)continue::只能应用在循环语句中,让程序直接跳过其后面的语句,进行下一次循环。
3)default:在switch语句中进行匹配不成功的处理。
3、重写与重载的区别
重写(overriding):也叫覆写、改写或重构,它是指在类继承时,子类重新定义了从父类继承来的方法。它用于父子之间,子类中声明与父类同名的方法,从而覆盖了父类的方法。重构解决了子类与父类的差异问题。方法重写需要遵循的规则如下:
1. 方法名称一定要一样;
2. 返回值数据类型要一样;
3. 所使用的参数要一样;
4. 修饰符的使用权限只能越开放,不能越封闭。public-->protected-->(default/package)-->private
5. 用final修饰的方法将不能再被重写。
重载(overloading):是指在同一个类中,有多个同名方法,只是方法的参数列表不同,适用于不同的调用情况。通俗的说是一个类中声明了多个相同名字的但可区分的方法。重载也有规则要遵守:
1. 方法的名称一定要一样;
2. 传入的参数类型一定要不一样。