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

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()){//强制转换
}
}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

转载于:https://www.cnblogs.com/Alittle7/p/6687539.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值