10-面向对象5.doc
文本预览下载声明
面向对象:多态
今日任务
内部类
理解内部类的概念和代码体现
掌握内部类的分类和用法
重点掌握 匿名内部类
包和Java的访问权限
理解包的概念、作用和命名
掌握包的声明方式,了解带包的类的编译和运行的方法;
掌握不同包中类的相互访问方式
重点掌握java的四种访问权限
AIP文档的使用
理解API和API文档的区别
掌握API文档的查询方式
Object类简介
理解Object类的作用
掌握equals方法和toString方法的作用,会重写这两个类;
适配器(Adaptor)设计模式
适配器模式
设计模式:对某一类问题的通用的解决办法,强调的是解决问题的思想;
适配器模式:将不符合使用要求的东西转换为符合使用要求的;
生活中的适配
生活中的适配器:
电源适配器:转换电源,把原来的电脑不能使用的220V交流电转换成电脑能够使用的16V直流电;
手机充电器;变压器;网络适配器;各种转接头;……
Java中的适配
java中的适配器,根据适配的对象不同,可以分为三类:
类的适配;对象的适配;接口的适配;
需求:看下列程序,分别书写实现类满足User类的需求;
interface Inter//接口
{
public void method1();
public void method2();
public void method3();
public void method4();
public void method5();
}
class User//用户类
{
public static void test1(Inter i){
i.method1();
i.method2();
}
public static void test2(Inter i){
i.method2();
}
public static void test3(Inter i){
i.method4();
}
}
不使用适配器的解决办法:
问题:只需要使用接口中的某一个获几个功能,但是其他不需要的功能也得必须实现一边,没用,浪费;
使用适配器的类:
适配器小结
适配器的作用,就是适配、转换,将不符合使用要求的东西转换为符合使用要求的;
适配器设计模式,解决的是怎么将不符合使用要求的类、对象或接口转换为符合使用要求的;
根据适配的对象不同,可以将适配器分为类的适配、对象的适配和接口的适配;
接口的适配的步骤:
创建一个适配器类实现接口,在这个类中使用空实现实现接口中的所有抽象函数;
因为适配器类中的函数都是空实现的,创建该类的对象没有意义,所以要将适配器类定义为抽象类;
要使用适配器类,只需书写类继承适配器类即可;
内部类
内部类介绍
内部类引入
java中,使用类描述真实存在的事物;
在生活中,存在这种情况,经常获发现有一个事物存在另一个事物里面,二者相互依赖;
手机里面有电池;汽车里面发动机;人体里面有各种内脏、器官;
需求:描述人和心脏,心脏依赖人体存在;
要解决这个问题,就需要使用内部类;
内部类的代码体现
内部类,就是用来描述一个事物存在另一个事物里面的关系的;
根据内部类写在外部类的位置,可以分为两类:
成员内部类:直接写在外部类的成员那位置的;
根据修饰符的不同,又可以分:
非静态成员内部类: 不使用static修饰的成员内部类
静态成员内部类:使用static修饰的成员内部类
局部内部类:写在外部类里面的函数中的;
成员内部类
一般成员内部类
外部类以外的类怎么使用内部类成员
一般成员内部类,要创建对象,必须先有外部类的对象存在;
外部内怎么使用内部类成员
外部类要使用内部类成员,需要先创建内部类的对象,然后通过内部类的对象方位它的成员;
在创建内部类的对象的时候,要给内部类中一个隐藏的指向外部类对象的变量赋值,所以先要有外部类的对象的引用;
在非静态函数中,有一个隐藏的this关键字,保存指向外部类对象的引用,而在静态函数中没有this,
所以在外部类的非静态函数中可以创建非静态内部类的对象,而在静态函数中不能创建内部类的对象;
内部类怎么使用外部类成员
非静态内部类中不能定义静态成员,除非是常量变量;
只能在非经他内部类中定义非静态成员和静态常量;
静态成员内部类
静态成员内部类是使用static修饰的成员内部类,它的对象和外部类的对象无关;
静态成员内部类,仅仅表示内部类和外部类的位置关系,所以静态成员内部类又被称为嵌套类;
在外部类中使用静态成员内部类的成员,和使用普通类一样,非静态成员需要通过内部类的对象访问,静态成员直接通过类名访问;
在静态内部类中使用外部类的成员,非静态成员,
显示全部