当前位置:编程学习 > JSP >>

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;
  }
}

补充:Jsp教程,Java技巧及代码 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,