java 类之间转换,java数据类型之间转换应用方法

当一个对象不能直接类型转换。就需要造型。

例如:

一个int型能直接转换为double   ,就不需要造型。

一个double型不能直接转换为int,就需要造型。

int   a   =1   ;

double   d1   =   a;     //不需要造型

int   a2   =   (int)d1   //需要造型。

注意:

1)boolean不能造型为其他任何类型,其他任何类型也不能造型为boolean型。

2)子类能够直接转换为父类,不需要造型。父类不能够直接转换为子类,需要造型。

3)在强制造型时,不一定造型成功,此时编译对,但执行时出错。

数据类型转换

class StringConversions {

public static void main(String args[]) {

int num = 19648;

System.out.println(num + " in binary: " + Integer.toBinaryString(num));

System.out.println(num + " in octal: " + Integer.toOctalString(num));

System.out.println(num + " in hexadecimal: " + Integer.toHexString(num));

}

}

所谓“造型”,并不是将一个类型的对象“变成”为某个类型,而是“看作”某个类型。比如有父类human,子类man与woman,如果new一个man的话,不需要显式造型,就可以被“看作”是一个human。(比如:human   aHuman   =   new   man();)当你拿到一个human对象时,实际上有可能是一个man,也可能是个woman,甚至干脆就是个human。如果你把刚才new的man还“看作”是个man的话(也就是说:man   m1   =   (man)aHuman;,这就是所谓“下溯造型”),是不会有错的;但如果你要是把他“看作”woman(就像这样:woman   w1   =   (woman)aHuman;),就会出现异常。

所以“上溯造型”一定是安全的,而“下溯造型”是不安全的

实例二

class Animal {

public String toString() {

return "This is an animal ";

}

}

class Dog extends Animal {

public void sound() {

System.out.println("Woof Woof");

}

}

class Cat extends Animal {

public Cat(String aName) {

name = aName;

}

public String toString() {

return super.toString() + "nIt's " + name + " the " + breed;

}

public void sound() {

System.out.println("Miiaooww");

}

private String name;

private String breed;

}

public class MainClass {

public static void main(String[] a) {

Cat aPet = new Cat("Fang");

Animal theAnimal = (Animal) aPet;

}

}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值