null&this&super&向上转型
向上转型:父类声明子类实例化对象 例如A是父类 B是子类
1 : 实际上是父类的对象但将会丢失子类没有的父类方法 ,如果调用方法 将会调用子类重写的父类方法
2:上转型对象不能调用子类新增的成员变量和子类新增的方法
3:上转型对象可以调用子类继承或重写的成员变量和方法
4:如果子类重写了父类的某个方法后,当对象的上转型对象调用这个方法时,调动的一定是子类重写的方法
final的用法?
1:修饰变量 是常量
2:修饰方法 是最终方法 不能被覆盖
3:修饰类 不能被继承
this的用法?
1:指向当前对象或示例
2:当我们使用的形式参数和成员变量名字相同时,这时要用this指明成员变量
super的用法?
1:super用来引用当前对象的父类
2:用来访问父类别隐藏的成员变量,如 super.variable
3:用来调用父类被重写的方法 如 super.Method([paramlist])
4:用来调用父类的构造方法 如 super([paramlist])
null关键字的用法?
java中,变量的使用都遵循一个原则,先定义,并且实例化后才能使用。有时候,我们定义一个引用对象,但是指定值,程序可能在try语句块中初始化。这时候我们使用变量的时候就会出错。所以我们可以先给变量指定一个null值,问题就解决了。如
Connection conn = null;
try {
conn = DriverManager.getConnection(null, null, null);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
1:null用来标识一个不确定的对象,因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量 如 int a = null 是错误的 而 object o = null是正确的
2:null本身不是对象,也不是Object的实例
3:java默认变量赋值
3.1:整数类型 int short long byte 默认值为0
3.2:非整数 float double 默认值0.0
3.3:boolean 类型 默认值false
4:容器类型与null
4.1:List:允许重复元素,可以加入任意多个null
4.2:Set:不允许重复元素,最多可以加入一个null
4.3:Map: 其key最多可以加入一个null,value字段没有限制
4.4:数组;基本类型数组,定义后如果不给定初始值,则java运行时会自动给定值。引用其数组,则所有的元素值为null
5:null其他作用
5.1:判断一个引用类型是否null,用==来判断
5.2:释放内存,让一个非null的对象指向null向null,这样这个对象就不在被任何对象应用了,等待JVM垃圾回收机制去回收