脚本宝典收集整理的这篇文章主要介绍了23内部类,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
/*
格式:
内部类格式:
public class 类名{
修饰符 class 类名{
}
}
*/
class Outer {
public class Inner {
}
}
/*
内部类访问特点:
内部类可以直接访问外部类的成员,包括私有
外部类要访问内部类的成员,必须创建对象
*/
public class Outer {
PRivate int num = 10;
public class Inner {
public void show() {
System.out.println(num);
}
}
public void method() {
// show();
Inner i = new Inner();
i.show();
}
}
成员内部类的定义位置
外界创建成员内部类格式
成员内部类的推荐使用方案
public class Outer {
private int num = 10;
/*
public class Inner {
public void show() {
System.out.println(num);
}
}
*/
//创建内部类
private class Inner {
public void show() {
System.out.println(num);
}
}
public void method() {
Inner i = new Inner();
i.show();
}
}
public class InnerDemo {
public static void main(String[] args) {
//创建内部类对象,并调用方法
// Outer.Inner oi = new Outer().new Inner();
// oi.show();
Outer o = new Outer();
o.method();
}
}
示例代码 :
public class Outer {
private int num = 10;
public void method() {
int num2 = 20;
class Inner {
public void show() {
System.out.println(num);
System.out.println(num2);
}
}
Inner i = new Inner();
i.show();
}
}
测试:
/*
测试类
*/
public class OuterDemo {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}
}
匿名内部类的前提
匿名内部类的格式
格式:new 类名 ( ) { 重写方法 } new 接口名 ( ) { 重写方法 } 举例:
new Inter(){
@override
public void method(){}
}
匿名内部类的本质
匿名内部类的细节
匿名内部类可以通过多态的形式接受
Inter i = new Inter(){
@Override
public void method(){
}
}
Inner接口:
public interface Inter { void show();}
Outer类:
/*
前提:
存在一个类或者接口
这里的类可以是具体类也可以是抽象类
格式:
new 类名或者接口名(){
重写方法;
};
本质是什么呢?
是一个继承了该类或者实现了该接口的子类匿名对象
*/
public class Outer {
public void method() {
/*
new Inter() {
@Override
public void show() {
System.out.println("匿名内部类");
}
};
*/
// show();
/*
new Inter() {
@Override
public void show() {
System.out.println("匿名内部类");
}
}.show();
new Inter() {
@Override
public void show() {
System.out.println("匿名内部类");
}
}.show();
*/
Inter i = new Inter() {
@Override
public void show() {
System.out.println("匿名内部类");
}
};
i.show();
i.show();
}
}
测试类:
/*
测试类
*/
public class OuterDemo {
public static void main(String[] args) {
Outer o = new Outer();
o.method();
}
}
示例代码:
Jumpping接口:
/*
跳高接口
*/
public interface Jumpping {
void jump();
}
Jumppingoperator接口操作类:
/*
接口操作类,里面有一个方法,方法的参数是接口名
*/
public class JumppingOPErator {
public void method(Jumpping j) { //new Cat(); new Dog();
j.jump();
}
}
猫类实现跳高接口:
public class Cat implements Jumpping {
@Override
public void jump() {
System.out.println("猫可以跳高了");
}
}
狗类实现跳高接口:
public class Dog implements Jumpping {
@Override
public void jump() {
System.out.println("狗可以跳高了");
}
}
测试类:
/*
测试类
*/
public class JumppingDemo {
public static void main(String[] args) {
//需求:创建接口操作类的对象,调用Method方法
JumppingOperator jo = new JumppingOperator();
Jumpping j = new Cat();
jo.method(j);
Jumpping d = new Dog();
jo.method(d);
jo.method(new Jumpping() {
@Override
public void jump() {
System.out.println("猫可以跳高");
}
});
}
}
以上是脚本宝典为你收集整理的23内部类全部内容,希望文章能够帮你解决23内部类所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。