Java文件里的类为 内部类
public class outer{
public static String staticString;
public String string;
public void getString(){
}
public static class inner{
//此类为内部类
public int innerInt;
public String innerString;
public void innerMethod(){
getString(); //static内部类可以调用外部类的静态方法。
innerString = //staticString;static内部类可以调用外部类的静态变量;
}
}
}
//注:static内部类可以调用outer类的static属性和方法。
//Java方法里的类为 局部类
public class outerTolocal{
public String string;
public int localInt;
public void OtoLocal(){
}
public void localMthod(final int m ,int n){
class local{
//此类为局部类
//局部类不需要加public 修饰符,应为这方法执行完 这类就消失了
int methodInt = m;局部类的变量如果要等于外部类的方法的变量,此时外部类的方法变量必须用final 修饰符 如:final int m;
void localInner(){
System.out.println("local method");
}
}
new local().localInner();//在另外的一个类的中不可以创建局部内部类的实例,只能在局部内部类中来创建。
}
}
以下为引用:
局部变量前面是不可以加权限控制符的,也不能用static修饰。但是可以用final修饰,用来确保这个变量的值不会发生改变。所以如果局部类要访问带修饰的局部变量,只能访问用final修饰的局部变量。但是局部类可以访问外部类的所有成员,包括成员变量。
忘记给你提一点了。局部类只能访问其所在方法中带final关键字的局部变量。
局部内部类:在外部类的方法中定义的内部类。如:
public class Person(){
private int age;
public void run(){
class Run{
}
}
}
类Run就是局部内部类。
注意:(1)局部内部类的定义和局部变量的定义一样,不用加限定符,其作用域是为本代码块。
(2)它可以访问外部类的实例变量,也可以访问外部类的局部变量,但是外部类的局部变量必须为final的。
(3)可以配合interface来使用来做到强制性的弱耦合。
(4)在另外的一个类的中不可以创建局部内部类的实例,只能在局部内部类中来创建。