Java基础 类,内部类

来源:互联网 发布:阿里云 华北5 速度 编辑:程序博客网 时间:2024/05/16 19:11
局部内部类

定义在代码块或者方法体中的类,叫做局部内部类

所有的局部变量的约束在局部内部类上均有

定义语法:
[final] class 类名 [extends 父类名] [implements 接口名1,接口名2]
{
}


注意事项:
1,局部内部类的作用域

从定义这个类开始,到遇到的第一个}结束,这个}与是在定义类的时候,的上一级{配对

2,局部内部类可以直接访问外部类的成员

如果发生重名则使用外部类名.this.变量名|外部类名.this.方法名([参数...]); 访问外部类的成员

3,局部内部类不能直接访问与之在同一个方法体中的局部变量

但是如果将同一个方法体中的局部变量用final修饰则可以访问(前提:在局部内部类中没有与需要访问的变量重名的变量)



匿名内部类

就是内部类的一种简写的方式,只不过,匿名内部类只能使用一次

1,写匿名内部类时,这个内部类一定要继承一个父类或者实现一个接口


2,匿名内部类定义及使用语法

new 父类名|接口名(){

实现或者重写父类的方法,如果是接口或抽象类,则必须重写所有的抽象方法

}.需要调用的方法名();


3,匿名内部类可以直接访问外部类的成员变量和成员方法

如果发生重名则使用外部类名.this.变量名|外部类名.this.方法名([参数...]); 访问外部类的成员


接口
可以理解为是比抽象类更加抽象的一个特殊的抽象类
里面只能声明定义常量和抽象方法

定义语法:

[修饰符] interface 接口名 [extends 父接口1,父接口2]
{
//常量默认有public static final修饰,所以声明的时候可以只写 数据类型 变量名 = 数据值 ;
常量

//抽象方法默认有 public abstract 修饰,所以声明的时候可以只写 void|返回值的数据类型 方法名([参数类型 参数1 ,...]);
抽象方法

}

接口的作用:用来规范编程,是编程过程的一个约定

使用接口的好处:

1,降低程序的耦合度
2,提高程序的重用性
3,提高程序的扩展性
4,实现了多继承


接口如何使用:

接口的使用必须有类实现 这个类叫做接口的实现类
类实现接口的声明语法 需要用到关键字 implements

[修饰符] class 类名 [extends 父类名] [implements 接口名1,接口名2....]
{
//必须重写所有接口中的方法

}

提问,接口和实现类之间,是否能够进行向上或者向下转型?

可以进行向上向下转型


内部类:
定义在类中的类叫做内部类

内部类的分类:

成员内部类
静态内部类
局部内部类
匿名内部类

成员内部类
声明的位置:声明为成员,就是和成员变量,成员方法同级

所有修饰成员变量的修饰符,均可用在成员内部类上

定义语法与普通类的定义语法一样


成员内部类定义与使用注意事项:

1,成员内部类可以直接访问外部类的成员变量和成员方法,
如果成员内部类中的变量与外部类中的变量发生重名时,使用 外部类名.this.变量名 访问外部成员变量
如果成员内部类中的方法与外部类中方法发生重名时, 使用 外部类名.this.方法名([参数]) 访问外部类的成员方法


2,成员内部类的使用

1,可以将成员内部类直接声明为外部类的成员变量

2,可以将成员内部类直接声明为外部类的局部变量

3,在其他类中如何创建成员内部类的对象?

1)创建外部类的对象

2)声明并创建内部类的对象

语法 : 外部类名.内部类名 内部类的对象名 = 外部类对象名.new 内部类名([参数....]);

3)调用内部类的方法

内部类名.内部类方法名();



静态内部类

声明位置:和成员内部类一致,只不过是将成员内部类 使用static修饰

使用注意点:

1,只能访问外部类的静态成员变量和成员方法

如果内部类中的变量与外部类中的静态变量发生重名时,使用 外部类名.变量名 访问外部成员变量
如果内部类中的方法与外部类中的静态方法发生重名时, 使用 外部类名.方法名([参数]) 访问外部类的成员方法


2,只有静态内部类中的成员才可以用static修饰

3,外部类访问内部类的静态方法和变量,可以直接使用内部类名.方法名([参数...]);| 内部类名.变量名;
外部类访问静态内部类的实例方法和实例变量,使用方法与成员内部类一致


4,在其他类中创建静态内部类对象?
外部类名.内部类名 内部类对象名 = new 外部类名.内部类名([参数...]) ;

5,在其他类中访问静态内部类的静态方法

外部类名.内部类名.静态方法名([参数....]);








原创粉丝点击