面向对象三大关键字课后习题
1.static可修饰的内容有?修饰后的效果是什么?
static可修饰的有属性,方法,代码块。修饰以后全类共享一份
2.静态方法为什么不能访问非静态成员?
时间上静态方法先于对象产生,空间上一个静态方法不能确定对应哪个对象。
静态代码执行期间还未产生对象,只有静态加载完才可能产生对象
3.什么叫类加载?
首次使用到某个类时,第二次用到不会加载。
java_home:系统需要的class文件
classpath:自己编写的class文件
4.静态代码块的执行时机与次数
执行时机:加载时
执行次数:一次
5.abstract可修饰的内容有?修饰后效果分别是?
类:不能new对象,不能独立存在
方法:称为抽象方法,只有方法声明,没有方法实现
6.子类继承抽象类有什么要求?
时间父类的全部抽象方法
7.final可修饰的内容有?修饰后的效果分别是?
类:最终类,不可被继承
方法:最终方法,不可被覆盖
变量:只能赋值一次
基本数据类型:值不可变
引用数据类型:地址不可变
8.不同变量的赋值时机?
局部变量:显示初始化
成员变量:使用前赋值,构造方法结束前赋值:显示初始块,动态代码块,构造方法中
静态变量:使用前赋值:显示初始化,静态代码块
9.修饰符综合
abstract final void m() // abstract要求由子类,final不允许有子类
public void final m() // final需要在返回值前
static abstract void m() //静态方法不允许覆盖
private final void m() //无所谓
private abstract void m() //错误
public static final void m() //公开的静态的不能覆盖的方法 //写的没有价值
final static 修饰方法较少,修饰常量较多
10.父类引用指向子类对象,调用静态方法时的执行结果