Java 内部类与局部类

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)在另外的一个类的中不可以创建局部内部类的实例,只能在局部内部类中来创建。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值