码迷,mamicode.com
首页 > 其他好文 > 详细

final,static静态和非静态,初始化和代码块的区别、父类和子类中都有static变量时的初始化顺序、重写equals()、 instanceof强制转换

时间:2017-04-10 11:33:43      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:转换   lin   lock   分享   构造器   size   静态变量   创建对象   color   

final:类不能被继承,方法不能被重写,属性值不能被修改(常量);
可以调用;
static静态常量-----
不需要创建对象,可以直接调用类里面的属性,方法;
示例如下:
技术分享
技术分享
加了static说明它是属于整个类的,每个对象值都一样,如下图所示:size是静态的,所以当在下面t1对象中改变size的值时,整个类中的size值都变了;然后作为普通属性的length,当在t1对象中改变其值,并不会改变原始值;
技术分享
静态方法不能调用非静态的方法和非静态的属性,也不能打印非静态的方法和非静态的属性;可以在静态方法中new一个对象,通过对象来调用非静态的方法和属性;
非静态的可以调用静态的属性和方法;
很少用static来修饰类,因为需要一个外部类来调用静态内部类;
代码块-------
只要在main中创建对象,代码块就会被执行
技术分享
技术分享
父类和子类中都有static变量,初始化顺序--------
父类--静态变量/父类--静态初始化块(代码块)
子类--静态变量/子类--静态初始化块(代码块)
子类main方法
父类--变量/父类--初始化块
父类--构造器(构造方法)
子类--变量/子类--初始化块
子类--构造器(构造方法)
总结:静态优先!父类优先!然后初始化块优先级大于构造方法,变量和初始化块同级,但是执行顺序从上往下,所以一般先定义变量
初始化和代码块的区别------
技术分享
 
static比非静态优先级高,放下面,上面也可以用;然而非静态的就不可以!
技术分享
顺序----
技术分享
 
Object------中的equals()方法,是用来判断一个字符串是否相等,若有多个字符串,比如说两个对象是否相等,可以通过重写equals()来实现
instanceof:判断类型
if(obj instanceof news){
if(id==(((news)obj).getid()){//强制转换
}
}
技术分享
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

final,static静态和非静态,初始化和代码块的区别、父类和子类中都有static变量时的初始化顺序、重写equals()、 instanceof强制转换

标签:转换   lin   lock   分享   构造器   size   静态变量   创建对象   color   

原文地址:http://www.cnblogs.com/Alittle7/p/6687539.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!