「java局部类」java局部变量怎么定义
今天给各位分享java局部类的知识,其中也会对java局部变量怎么定义进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java中局部内部类与成员内部类的区别是什么?
- 2、java局部类怎么写,代码是如何运行的?
- 3、Java在外界如何调用局部内部类
- 4、java 关于局部内部类的问题
- 5、Java 局部内部类有什么作用?
java中局部内部类与成员内部类的区别是什么?
成员内部类:
即作为外部类的一个成员存在,与外部类的属性、方法并列。
注意:成员内部类中不能定义静态变量,但可以访问外部类的所有成员,而且内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。
局部内部类:
即在方法中定义的内部类,与局部变量类似,在局部内部类前不加修饰符public或private,其范围为定义它的代码块。
注意:局部内部类中不可定义静态变量,可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的。在类外不可直接生成局部内部类(保证局部内部类对外是不可见的)。要想使用局部内部类时需要生成对象,对象调用方法,在方法中才能调用其局部内部类。通过内部类和接口达到一个强制的弱耦合,用局部内部类来实现接口,并在方法中返回接口类型,使局部内部类不可见,屏蔽实现类的可见性。
java局部类怎么写,代码是如何运行的?
class Outer {
private int num = 10;
public void method() {
final int num2 = 20;
class Inner {
public void show() {
System.out.println(num); // 访问外部类的num 输出10
//从内部类中访问本地变量num2; 需要被声明为最终类型
System.out.println(num2);// 访问内部类的num2 输出20
}
}
// 局部方法中创建内部类 并调用外部类的方法
Inner i = new Inner();
i.show();
}
}
public class Test02 {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}
}
局部内部类
A:可以直接访问外部类的成员
B:在局部位置,可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能
Java在外界如何调用局部内部类
内部类和成员变量一样,通过外部类的实例调用内部类。
可以先创建外部类实例。
用外部类实例调用内部类构造方法创建内部类实例。
再用这个内部类实例调用内部类成员方法。
A a=new A();
A.B b=a.new B();
b.do1();//do是关键字,所以这里在do后面加了个1,否则无法编译。
java 关于局部内部类的问题
不给s赋值就会输出“do”,这是因为你在方法里不是new在这个局部内部类了么,最后的return new innerClass2("do"),初始化给s的值就是do,当然会输出"do"。
至于为什么要引用接口,首先你的局部方法,返回值就是这个接口对象,如果你的局部内部类不去引用接口,那返回这个局部内部类对象,肯定会报错的。
事实上,这里局部内部类的作用就是返回一个接口的对象。
Java 局部内部类有什么作用?
装逼用的~
个人觉得,在某些情况下,某些业务逻辑需要临时处理,这些业务逻辑只在这里使用又可以封装成一个类的话,而又没必要重新建个文件,所以可以这写一个局部内部类来处理。
然后,在我的记忆中,java代理模式中有用到局部内部类,在方法中直接实现接口,返回代理对象,简单而又方便。
感觉内部类一般在设计模式中会用的比较多,我们平时开发不会用到太多。学习了就好!
下图是代理模式使用局部内部类的一个例子:
java局部类的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java局部变量怎么定义、java局部类的信息别忘了在本站进行查找喔。
发布于:2022-12-11,除非注明,否则均为
原创文章,转载请注明出处。