java高级特征

一、static 

static修饰符
属于类不属于对象,随着所在类的加载而加载
优先于对象存在(对象是手动通过new出来的)
static修饰的成员被该类型的所有对象共享
直接使用类名访问static成员,也可以用对象访问


类成员:使用static修饰的成员,属于类
实例成员:没有使用static修饰的成员,属于对象


在static方法中,只能调用static成员
如果这个状态/行为属于整个事物(类),就直接使用static修饰,被所有对象共享
往往把工具方法用static修饰
如果不使用static修饰,则这些方法属于该类的对象,需要先创建对象再调用方法
工具对象只需要一份,但可能要创建N个对象来实例化类,显得麻烦且占内存


注意问题:
1.静态方法的调用不是通过实例对象进行的,所以它没有this指针
2.子类不能重写父类的静态方法,可声明与父类静态方法相同的方法将父类静态方法覆盖。




没有使用import之前操作不在同一个包中的类,要使用全限定名
使用import语句直接把某个包下的类导入到当前类中
语法格式:import 需要导入类的全限定名


编译器会自动去java.lang包中去寻找使用到的类,比如String,System,不用导入
import 包名.子包名.*  表示引入该包下的所有在当前文件使用到的类

(语法坛,不建议使用)静态导入static import 类的全限定名.* 此时的*表示当前类的任意使用到的静态成员



二、接口

接口也是类的抽象,比抽象类更深一层。
接口只规定了类的一些方法,但并没有方法体(接口中所有方法都是抽象的),所以其实现是留到子接口中完成的。

java中只能单继承,而可以有多个接口(实现多重继承),这就弥补了单继承的缺陷。



接口使用演示:



猜你喜欢

转载自blog.csdn.net/ziyonghong/article/details/81039999