java-2-25

基本类型转换

自动类型转换:容量的类型自动转换为容量大的数据类型

byte, short, char -> int-> long-> float-> double

赋值表达式等号两侧的转换的规则:右侧表达式要转换到和左边的类型一样
short s = 1 //可以

s=s+1; //错
字面量 1 是 int 类型,在计算时s会自动转换为int,与1相加后,得到
int型的2,要向左侧的short类型的s1看齐,即需要通过强制类型转换
s+=1;//对
+=,++运算符可以执行隐式类型转换,其实执行的是s1 = (short) (s1 + 1); 
其中会有一个强制转换的过程

隐式类型转换:当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算

访问权限

不加访问修饰符,表示包级可见
protected修饰成员,表示在继承体系中,该成员对于子类可见
privated仅在类内部可见

里氏替换原则

里氏代换原则(Liskov Substitution Principle, LSP):所有引用基类(父类)的地方必须能透明地使用其子类的对象。
理解:接受的参数(类型)范围比父类大,返回的类型范围比父类小。可以理解为子类比父类强,父亲能干的事情儿子一定可以,反过来不一定成立。

判断相等

x instanceof A
检验x 是否为类A 的对象,返回值为boolean 型。
要求x所属的类与类A必须是子类和父类的关系,否则编译错误。
如果x属于类A的子类B,x instanceof A值也为true

==

  1. 基本类型比较:比较两个变量保存的数据是否相等。(不一定类型要相同)
  2. 引用类型比较引用(是否指向同一个对象):只有指向同一个对象时,== 才返回true。
  3. 用“==”进行比较时,符号两边的 数据类型必须兼容(可自动转换的基本
    数据类型除外),否则编译出错

obj1.equals(obj2)

Object类中equals()的定义:
   public boolean equals(Object obj) {
	        return (this == obj);
	  }
说明:Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同.
即两个引用是否指向同一个对象实体
  1. 只能比较引用类型 ,
  2. 所有类都继承了Object,也就获得了equals() 方法 ,当自定义使用equals() 时,可以重写,用于比较两个对象的 “ 内容 ” 是否都相等。
  3. 特例用 :当用equals() 方法进行比较时,对类File 、String 、Date 及包装类(Wrapper Class) 来说 , 是比较类型及内容而不考虑引用的是否是同一个对象 ;
    原因:在这些类中重写了Object 类的equals() 方法 。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值