【Java】7. 类型转换和类型判断

7. 类型转换

7.1 基本类型转换

【Java】7. 类型转换和类型判断_第1张图片

顺箭头:隐式转换(自动)

逆箭头:强制转换(可能造成精度丢失)

byte a = 10;
int  b = a;
int c = 1000;
byte d = (byte) c;
System.out.println(d);  // -24  

7.2 包装类型与基本类型之间的转换

【Java】7. 类型转换和类型判断_第2张图片

int a = 10;
Integer b = a;
Integer c = new Integer(20);
int d = c;
System.out.println(d);

7.3 引用类型之间的转换规则

继承特点:

  • 单继承:子类只能继承一个父类
  • Object 是其他类型直接或者间接的父类型(不写 extends 也是继承 Object)

转换规则:

  • 顺箭头:隐式转换

【Java】7. 类型转换和类型判断_第3张图片

public class TestArray {
    public static void main(String[] args) {
        Animal a = new Cat();  // 对象还是原本的对象,只是用父类型或者祖先类型来代表它
        Object b = new Cat();
//        Appliance c = new Cat();  // 不合法
    }
}
class Animal extends Object {}
class Cat extends Animal {}
class Dog extends Animal {}
class Appliance {}
  • 逆箭头:强制转换
public class TestArray {
    public static void main(String[] args) {
        Animal a = new Cat();  // 对象还是原本的对象,只是用父类型或者祖先类型来代表它
        Object b = new Cat();
        Cat c = (Cat) a;
//        Dog d = (Dog) a;  // 类型转换错误 ClassCastException
        Animal d = (Animal) a;
    }
}
class Animal extends Object {}
class Cat extends Animal {}
class Dog extends Animal {}
class Appliance {}

7.4 类型判断

System.out.println(a.getClass()); // class com.example.demo.Cat
System.out.println(b.getClass()); // class com.example.demo.Cat
System.out.println(a instanceof Cat);  // true

7.5 字符串和数字的转换

String a = "1";
String b = "2";
System.out.println(a + b); // 12
System.out.println(Integer.parseInt(a) + Integer.parseInt(b)); // 3

你可能感兴趣的:(Java,java,开发语言)