------------- android培训、java培训、java博客、java学习型技术博客、期待与您交流! -------------
对外部类搞的有点混乱,查了好多资料,整理的笔记,分享下:
public class Outer
{
public class Inner1 //在方法体外面定义的内部类
{
}
}
1.在方法体外面定义的内部类的访问类型可以是public,protecte,默认的,private等4种类型,这就好像类中定义的成员变量有4种访问类型一样,它们决定这个内部类的定义对其他类是否可见;对于这种情况,我们也可以在外面创建内部类的实例对象,创建内部类的实例对象时,一定要先创建外部类的实例对象,然后用这个外部类的实例对象去创建内部类的实例对象,代码如下:
Outer outer = new Outer();
Outer.Inner1 inner1 = outer.new Innner1();
2.
在方法外部定义的内部类前面可以加上static关键字,创建内部类的实例对象时,代码如下:
Outer.Inner1 inner1 = outer.new Innner1();
同时整理已到面试题:
- interface Inter {
- public abstract void show();
- }
- class Outer {
- //请完成Outer的内容
- }
- class InterClassTest{
- public static void main(String[] args) {
- Outer.method().show();
- }
- }
答案:
- interface Inter {
- public abstract void show();
- }
- class Outer {
- static Inter method()
- {
- return new Inter()
- {
- public void show(){};
- }
- }
- }
- class InterClassTest{
- public static void main(String[] args) {
- Outer.method().show();
- }
- }
分析:根据主函数
1.Outer.method()可以发现method()是Outer中的静态方法,
2.Outer.method().show() show()方法被调用,show方法所属Inter接口,只有Inter对象才可以调用。
因此Outer.method()运行后肯定返回了Inter实例化对象。
3.Inter为接口,实例化对象时必须重写show方法。
------------- android培训、java培训、java博客、java学习型技术博客、期待与您交流! -------------