java OO——static

     凡是用static修饰,会具备:与对象无关,属于类级别的操作,在加载期会有特殊操作的共性。全类所有对象共享一个属性,由此衍生出类名.属性名的语法,static修饰的属性在加载期,就被产生到内存的数据段的静态区中了。static修饰属性的原则若是全类共享的属性,才设置为static,否则属性不要设置为static的。static不能修饰构造方法,static方法可以用类名进行调用,非static方法必须用对象进行调用,static方法内只能调用static的属性和行为,不能调用非static的属性和行为,非static方法都可以调用,static方法内部不能用this.,super.,static方法可以用类名访问,这个时候没有当前对象的存在,static方法在加载期会被先加载,此时还没有加载非static的方法或属性,所以不认识它们也就不能调用,static方法无法直接调用非static方法、属性,因为没有办法确定对象;如果能够在static方法中绑定上对象,也是可以调用的。static修饰的方法都只跟类有关,与对象无关。只有工具类的工具方法,才设计为static的。

     当=两边的数据类型不一致时就要进行数据类型转换,无论是基本数据类型还是引用数据类型,不是所有的基本数据类型都能转换成其他的基本数据类型,boolean不参与。小的数据类型向大的数据类型转换是自动转换,大的数据类型向小的数据类型转换是强制(显式)转换(可能会造成精度丢失,或发生转换失败异常)。引用数据类型的转换有一个前提条件就是必须要有继承关系的引用类型间才能进行相互转换,没有继承关系的类就算强转也会编译报错。引用数据类型转换也有两种——向上转型和向下转型。向上转型是把子类对象赋给父类引用去指向,自动类型转换(一定成功),把小类型的对象交给大类型的引用变量,这是站在父类的角度去看待子类的对象,因为子类对象当中有一个完整的父类对象部分,所以会成功。向下转型不是简单的把父类对象赋给子类引用,而是父类引用指向某个子类独享,然后再把这个父类引用赋给这个子类的引用,最后还是本类引用指向本类对象,其他情况都会失败。引用数据类型转换不是把对象给变化了,只是转换引用的类型;在本质上,绝对成功的只有两种形式:本类引用指向本类对象;父类引用指向子类对象;同样一个对象,用本类引用指向可以看到所有的被访问修饰符允许操作的属性和行为;用父类引用指向只能看到来自于父类的被访问修饰符允许操作的属性和行为;当调用被重写方法的时候,不管是父类引用还是子类引用,都是对象所属类型的效果,当手上有一个父类引用,调用被重写方法的时候,只有运行起来以后,根据该引用实际指向; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值