1.类的修饰符
1.1.final
NormalClass.java
public final class NormalClass{
private int x = 10;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
}
class NormalClass1 extends NormalClass{
}
The type NormalClass1 cannot subclass the final class NormalClass;
final修饰的类不能被继承;
1.2static
Illegal modifier for the class NormalClass; only public, abstract & final are permitted
NormalClass.java
public static class NormalClass{
private int x = 10;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
}
和NormalClass.java文件一样的类只能被public,abstract与final修饰;
1.3外部类和内部类的区别
外部类已经是隐式静态的。
非静态嵌套类意味着内部类隐含地引用其父类。
这就是为什么对于嵌套类,你可以区分静态和非静态。这对外部类没有意义。
这里是一个例子来了解静态/非静态嵌套类之间的区别。你应该明白为什么在外部类中没有意义。
public class MyClass {
private String anAttributeOfMyClass;
private / * static * / class MyInnerClass {
public void foo(){
/ *
*这里,我可以访问属性父类
*,因为我隐式地有一个对它的引用。
*尝试让嵌套类静态看到差别。
* /
anAttributeOfMyClass.trim();
}
}
}
2.方法中return先执行还是finally先执行
public class NormalClass{
private int x = 10;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int cal(int value) {
try {
return x*value;
}catch(Exception ex) {
ex.printStackTrace();
}finally {
System.out.println("finally");
}
return -1;
}
public static void main(String[] args) {
NormalClass normalClass = new NormalClass();
System.out.println("return: "+ normalClass.cal(10));;
}
}
输出结果:
finally
return: 100
参考:
https://www.it1352.com/511693.html