3、 定义了成员内部类后,必须使用外部类对象来创建内部类对象,而不能直接去 new 一个内部类对象,即:内部类 对象名 = 外部类对象.new 内部类( );
2015-04-12
2、 Inner 类中定义的 test() 方法可以直接访问 Outer 类中的数据,而不受访问控制符的影响,如直接访问 Outer 类中的私有属性a
2015-04-12
1、 Inner 类定义在 Outer 类的内部,相当于 Outer 类的一个成员变量的位置,Inner 类可以使用任意访问控制符,如 public 、 protected 、 private 等
2015-04-12
使用接口: 接口在使用过程中,还经常与匿名内部类配合使用
匿名内部类就是没有名字的内部类, 多用于关注实现而不关注实现类的名称
语法格式: Interface i=new Interface(){
public void method(){ System.out.println("匿名内部类实现接口的方式");}
}
匿名内部类就是没有名字的内部类, 多用于关注实现而不关注实现类的名称
语法格式: Interface i=new Interface(){
public void method(){ System.out.println("匿名内部类实现接口的方式");}
}
2015-04-12
使用接口:
一个类可以实现一个或多个接口,实现接口使用 implements 关键字。Java中一个类只能继承一个父类,是不够灵活的,通过实现多个接口可以做补充。
继承父类实现接口的语法为: [修饰符] class 类名 extends 父类 implements 接口1,接口2……{类体部分//如果继承了抽象类,需要实现继承的抽象方法;要实现接口中的抽象方法。}
****如果要继承父类,继承父类必须在实现接口之前*****
一个类可以实现一个或多个接口,实现接口使用 implements 关键字。Java中一个类只能继承一个父类,是不够灵活的,通过实现多个接口可以做补充。
继承父类实现接口的语法为: [修饰符] class 类名 extends 父类 implements 接口1,接口2……{类体部分//如果继承了抽象类,需要实现继承的抽象方法;要实现接口中的抽象方法。}
****如果要继承父类,继承父类必须在实现接口之前*****
2015-04-12
接口定义
常量:接口中的属性是常量,即使定义时不添加 public static final 修饰符,系统也会自动加上;
方法:接口中的方法只能是抽象方法,总是使用,即使定义时不添加 public abstract 修饰符,系统也会自动加上;
常量:接口中的属性是常量,即使定义时不添加 public static final 修饰符,系统也会自动加上;
方法:接口中的方法只能是抽象方法,总是使用,即使定义时不添加 public abstract 修饰符,系统也会自动加上;
2015-04-12
接口定义的基本语法:
[修饰符]interface 接口名[extends 父接口1,父接口2……]
{
零个到多个常量定义……
零个到多个抽象方法的定义……
}
[修饰符]interface 接口名[extends 父接口1,父接口2……]
{
零个到多个常量定义……
零个到多个抽象方法的定义……
}
2015-04-12
静态内部类是 static 修饰的内部类,这种内部类的特点是:
1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问
2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员
3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
1、 静态内部类不能直接访问外部类的非静态成员,但可以通过 new 外部类().成员 的方式访问
2、 如果外部类的静态成员与内部类的成员名称相同,可通过“类名.静态成员”访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不相同,则可通过“成员名”直接调用外部类的静态成员
3、 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对象名= new 内部类();
2015-04-11