final关键字的使用
final:不可改变。可以用于修饰类、方法和变量。
- 被修饰的类不能被继承
- 被修饰的方法不能被重写
- 被修饰的变量,不能被重新赋值
1、被final所修饰的局部变量只能够进行一次赋值操作,随后不能改变
2、引用类型的局部变量被final修饰后,只能指向同一个对象,地址值不能发生改变
3、final对成员变量的初始化的两种方法
class User{
//第一种初始化数变量方法
final String NAME="张三";
/*第二种初始化则在构造函数里面
final String NAME;
public User(String name){
this.NAME = name;
}*/
public void run(){
System.out.println("run");
}
}
public class FinalUsing {
public static void main(String[] args) {
final int a = 10;
//a=20; // 报错,被final修饰的变量不能进行二次赋值
System.out.println(a);
//引用类型的局部变量被final修饰后,只能指向同一个对象,地址值不能发生改变
final User u = new User();
//下面这行新创建了一个相同对象,但是地址值不一样
//User u = new User(); 报错
u.run();
}
}
内部类的认识及其使用
1、内部类即类中方法体外包含的其他类
2、内部类可以随意掉用外部类的方法以及成员变量
3、外部类如果要调用内部类方法或者成员变量的话
创建内部类对象格式:
外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
class A{
public int a = 10;
public void run(){
System.out.println("外部类A的方法");
}
class B{
public int b= 20;
public void run1(){
System.out.println("内部类B的方法");
}
}
}
public class NBlei {
public static void main(String[] args) {
//外部类创建对象并调用方法
A a = new A();
a.run();
//内部类创建对象并调用方法
A.B b = new A().new B();
b.run1();
//等效于上面的创建内部类对象
A.B b1 = a.new B();
b1.run1();
}
}