2019.7.31 NIIT第十五天 /今天是周三,过了今天一周又快结束了/
一、static关键字
- 静态修饰符,被修饰的成员属于类,不用通过对象可以直接调用
- 被修饰的成员属性,会影响每一个该类创建的对象
- 静态方法不能调用动态方法/动态属性
- 如果该成员变量/方法,被所有类共享,可以定义为static
二、final关键字
- 最终修饰符,可以修饰类,成员方法,变量
- final 修饰的类,不可以被继承->无法被重写
- 最终的!不能被改变
- 无法重写父类中的final方法
- 被final修饰的是常量,不能被修改,必须要有初始值
- 可以被调用,但是在定义完成之后,无法再赋值
final和static连用
引用类型的变量用final修饰,是指其引用的对象不能改变,即地址不改变
/理解:被final修饰之后,就改不了了!/
三、包管理
分包管理是组织软件结构的基本方式
在同包下使用相关的类是不用导包的
在不同包下的类需要导包,使用import关键字
如果导入包后,如果出现相同类名,使用全类名,不然默认使用本包里的类
四、访问权限
| 权限 | 同一类 | 同一个包中(子类与无关类) | 不同包的子类 | 不同包中的无关类 |
|---|---|---|---|---|
| public | √ | √ | √ | √ |
| protected | √ | √ | √ | |
| (空的)defaule | √ | √ | ||
| private | √ |
五、内部类
内部类即在类中定义另外一个类,是一个相对概念
内部类分为成员内部类与局部内部类
public class TestNest {
public static void main(String[] args) {
//创建内部类对象
NestedClass.Inner inner=new NestedClass().new Inner();
inner.innerMethod();
//先创建外部类
NestedClass nc=new NestedClass();
NestedClass.Inner inner1=nc.new Inner();
}
}
局部内部类不能用public修饰,内部的成员方法和属性可以用public
类名用public修饰必须与文件名相同
一个文件中只能有一个public修饰类
调用局部内部类里的方法的时候,需要在外方法中创建对象,然后利用该对象进行局部内部类中方法的调用
public class NestedPartClass {
public void method() {
//在方法中定义类,就称之为局部内部类
class Inner{
public String name;
public void method() {
System.out.println("调用内部类");
}
}
Inner i=new Inner();
i.method();
}
}
只使用一次的情况,可以使用匿名内部类
六、内部类的使用
一般内部类为外部类的组成部分
七、异常概述与分类
异常:就是程序运行中出现的不正常的情况
异常的由来:程序中的问题也是现实生活中的一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象
八、异常的分类
Throwable
Error (错误:一出现就是致命的)
服务器宕机,数据库崩溃等
Exception
RuntimeException(运行时异常,一般都是程序员犯的错误,需要修改源码的.)
抛出异常:throws
让JVM虚拟机处理的方式等同于不处理,整个程序就会终止
捕获异常:try{}catch{}
如果异常被捕获,则其他代码正常使用不受影响
NullPointerException->空指针异常
ArrayIndexOutOFBoundsException->数组下标越界
try{}内产生异常,会执行catch{}然后顺序向下执行
子类不能抛出比父类更多的异常
子类可以抛出比父类异常范围小的异常
如果父类没有抛出异常,子类重写方法的时候也不能跑出异常
九、finally
不管是否有异常产生,都会去执行finally的代码
try{
可能出现异常的代码
}
catch{
异常出现后的处理/提示代码
}
finally{
处理/提示完后执行的代码
}