b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

匿名内部类_匿名内部类的写法_匿名内部类和内部类(2)

电脑杂谈  发布时间:2016-12-30 08:00:39  来源:网络整理

public class OuterClass {
	private void outerMethod() {
		System.out.println("It's Method of OuterClass");
	}

	public static void main(String[] args) {
		Innerclass in = new Innerclass();
		in.innerMethod();
	}

	static class Innerclass {//把内部类声明为static
		public void innerMethod() {
			System.out.println("It's Method of innerMethod");

		}
	}

}
当然,一般不使用static的方式,而是推荐这种方法:x.new A() ,其中 x是外部类OuterClass的实例,A是内部类Innerclass
package innerclass;
public class OuterClass {
	private void outerMethod() {
		System.out.println("It's Method of OuterClass");
	}
	public static void main(String[] args) {
		OuterClass.Innerclass in = new OuterClass().new Innerclass();//使用x.new A()的方式
		in.innerMethod();
	}
	class Innerclass {
		public void innerMethod() {
			System.out.println("It's Method of innerMethod");
		}
	}
}
x.new A() ,其中 x是外部类OuterClass的实例,A是类部类Innerclass,当然可以拆分如下,这样就显然很明白啦:
	public static void main(String[] args) {
		OuterClass out = new OuterClass();//外部实例
		OuterClass.Innerclass in = out.new Innerclass();//外部实例.new 外部类
		in.innerMethod();
	}

(3)什么情况下使用内部类

典型的情况是,内部类继承自某个类或实现某个接口,内部类的代码操作创建其的外层类的对象。所以你可以认为内部类提供了某种进

入其外层类的窗口。

使用内部类最吸引人的原因是:每个内部类都能独立地继承自一个(接口的)实现,所以无论外层类是否已经继承了某个(接口的)实

现,对于内部类都没有影响。如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。从这个角

度看,内部类使得多重继承的解决方案变得完整。接口解决了部分问题,而内部类有效地实现了“多重继承”。

(4)在静态方法中实例化内部类例子:(内部类放在静态方法中)

package javatest2;
public class JavaTest2 {
	public static void main(String[] args) {
		class Boy implements Person {
			public void say() {// 匿名内部类自定义的方法say
				System.out.println("say方法调用");
			}
			@Override
			public void speak() {// 实现接口的的方法speak
				System.out.println("speak方法调用");
			}
		}
		Person per = new Boy();
		per.speak();// 可调用
		per.say();// 不能调用
	}
}
intece Person {
	public void speak();
}
per.speak()可调用,而per.say()不能调用,这时因为per是Person对象,要想调用子类的方法,可以强制向下转型为:((Boy) per).say();或者直接改为Boy per = new Boy();。从中可发现,要想调用内部类的自定义的方法,必须通过内部类的对象来调用。那么,匿名内部类连名字都没有,怎么调用内部类自定义的方法?


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-23912-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 杜羔
      杜羔

      我们真的倒退100年

      • 轩辕弥明
        轩辕弥明

        但即便不是无害通过也不会不予警告就直接开火或者撞击

    • 郝若萌
      郝若萌

      空军起飞

    热点图片
    拼命载入中...