Java语言基础简介(五)

来源:互联网 发布:网上体彩软件下载 编辑:程序博客网 时间:2024/05/17 07:05

一、final关键字的使用
1、final修饰一个类,这个类不能被继承
2、final修饰一个方法,那么这个方法不能够被重写
3、final修饰的一个变量,那么这个变量不能够被重新赋值
4、final修饰局部变量的问题:
基本数据类型:被final修饰时,值不能够变
引用数据类型:被final修饰时,栈内存的地址值不能改变,但堆内
存的内容是可以变的
5、final修饰变量的初始化时机:
A:被final修饰的变量只能赋值一次
二、多态概述
1、同一事物,在不同的时刻表现出不同的状态
2、多态的前提:
A:要有继承关系
B:要有重写
C:父类的引用指向子类的对象
3、多态的成员访问特点
A:成员变量
编译看左边,运行看左边
B:构造方法
先初始化父类,再初始化子类
C:成员方法
编译看左边,运行看右边
D:编译看左边,运行看左边
4、多态的好处
A:提高了代码的可维护性(由继承保证)
B:提高了代码的扩展性(由多态保证)
5、多态的弊端
A:不能使用子类的特有功能
6、对象间的转型问题
A:向上转型
Fu f=new Zi();
B:向下转型
Zi z=(Zi)f
三、抽象类概述
1、抽象类的特点:
A:抽象类与抽象方法必须使用abstract修饰
B:抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类
C:抽象类不能够被实例化
D:抽象类有构造方法,这是为了给子类使用
E:抽象类的子类
a:如果不想重写抽象类方法,其子类可以是抽象类
b:如果子类不是抽象类,必须重写抽象类中的抽象方法
F:抽象类的实例化其实是靠具体的子类实现的,利用多态的方式

2、抽象类的成员特点
A:成员变量
可以是变量,也可以是常量
B:成员方法
既可以是抽象的,也可以是非抽象的,抽象的方法是子类一定要去
实现的,非抽象的方法是给子类直接调用,提高代码的复用性
C:构造方法
有构造方法,是给子类使用的,用于子类访问父类数据的初始化
3、抽象类中哪几个关键字不能与abstract共存?
a:private 冲突
b:final 冲突
c:static 无意义
四、接口概述
1、接口的特点
A:接口用interface表示
B:实现接口用implements实现
C:接口不能实例化
D:接口的子类
a:可以是抽象类,但是意义不大
b:可以是具体类.必须实现接口中所有的抽象方法
2、接口的成员特点
A:成员变量:只能是静态常量,具有默认修饰符 public final static
B:构造方法:接口没有构造方法
C:成员方法:接口的方法都是抽象的,默认修饰符为public abstract
五、类与类、类与接口、接口与接口之间的关系
A:类与类
继承关系,只能是单继承或者多层继承
B:类与接口
实现关系,可以实现单个接口,也可以同时实现多个接口
C:接口与接口
继承关系,可以单继承,也可以多继承
六、抽象类与接口的区别
1、成员区别
抽象类中的成员变量可以是变量,也可以是常量,接口中的成员变量一定是常量;抽象类的成员方法既可以是抽象的,也可以是非抽象的,接口中的成员方法一定是抽象的;抽象类有构造方法,方便子类初始化数据,接口没有构造方法。
2、关系不同
类与类只能是单继承关系或者多层继承关系,接口与接口之间可以是多继承关系
3、设计理念区别
抽象类被继承体现的是”is a” 的关系,体现的是继承体系的共性功能,接口被实现体现的是一种”like a”的关系,体现的类的扩展性功能

七、形式参数和返回值的问题
1、 形式参数
A:基本数据类型
B:类名:类的对象
C:抽象类名:需要的是该抽象类的子类对象
D:接口:需要的是该接口的子类对象
2、返回值类型
A:基本数据类型
B:类名,返回该类的对象
C:抽象类名,返回该抽象类的子类对象
D:接口,返回该接口的子类的对象
3、链式编程是指对象调用方法,再调用方法…….
每次调用完方法后返回的是一个对象
八、包的概述
1、其实就是文件夹
2、作用
A:对类进行分类管理
B:把相同的类名放在不同的保重
3、分包方案
A:按照功能分
B:按照模块分
4、包的定义及注意事项
A:package语句必须是程序的第一条可执行的代码
B:package名不能重复
C:如果没有package,则默认表示无包名
5、package,import,class有没有顺序关系?
package>import>class
package:只能有一个
import:可能有多个
class:可以有多个,建议一个
九、权限修饰符
本类 同一个包下(子类和无关类) 不同包下(子类) 不同包下(无关类)
private Y
默认 Y Y
protected Y Y Y
public Y Y Y Y

十、Java中修饰符的使用
1、分类
权限修饰符:private,默认,protected,public
状态修饰符:static,final
抽象修饰符:abstract
2、使用
A:修饰类:
默认,public,final,abstract
B:修饰成员变量
除abstract,其它都可以
C:修饰构造方法
除权限修饰符外,其它的都不可以
D:修饰成员方法
所有的都可以
十一、内部类概述
定义:把类定义在其它类的内部,称为内部类
内部类的访问特点:
A:内部类可以直接访问外部类的成员,包括私有
B:外部类要想访问内部类的成员,必须创建对象
内部类的划分:
A:在成员位置定义的类,被称为成员内部类
a:如何直接访问内部类的成员?
外部类名.内部类名 对象名=外部类对象.内部类对象;
b:成员内部类的修饰符
private 保证数据的安全性
static 方便访问数据
c:被static修饰的成员内部类的特点:
内部类访问的外部类成员变量必须是静态的,内部类中的方
法可以是静态的,也可以是非静态的
d:被static修饰的成员内部类的访问特点:
外界访问静态内部类的非静态方法:
外部类名.内部类名 对象名=new 外部类名.内部类名()
外界访问静态内部类的静态方法:
外部类名.内部类名.静态方法名()
B:在局部位置定义的类,被称为局部内部类
a:可以直接访问外部类的成员
b:在局部位置可以创建内部类对象,通过对象调用内部类方法,
来使用局部内部类功能
c:局部内部类访问局部变量的注意事项
局部内部类访问的局部变量必须使用fina修饰,这是因为被final修饰的变量会变成常量,局部变量会随着方法的消失而消失,而内部类对象在堆内存中,是在等待回收,所以会出现变量消失了,但内部类对象还在使用的情况,而变成常量后,num就是值常量,不会因为变量的消失发生问题
d:匿名内部类
本质:是一个继承了该类的子类或者是实现了该接口的子类匿名对象