int 是基本数据类型
Integer是其包装类,注意是一个类。
为什么要提供包装类呢???
一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。
比如,现在int要转为String
int a=0;
String result=Integer.toString(a);
在java中包装类,比较多的用途是用在于各种数据类型的转化中。
我写几个demo
//通过包装类来实现转化的
int num=Integer.valueOf("12");
int num2=Integer.parseInt("12");
double num3=Double.valueOf("12.2");
double num4=Double.parseDouble("12.2");
//其他的类似。通过基本数据类型的包装来的valueOf和parseXX来实现String转为XX
String a=String.valueOf("1234");//这里括号中几乎可以是任何类型
String b=String.valueOf(true);
String c=new Integer(12).toString();//通过包装类的toString()也可以
String d=new Double(2.3).toString();
package integer;
abstract class Area{//抽象方法abstract public Double getArea();
}class Circle extends Area{// 求圆面积private Integer r;private Double num = 3.14;public Circle(Integer r) {// 创建构造器super();this.r = r;}public Double getArea() {return r * r * 3.14;}
}class Rectangle extends Area{//求矩形面积private Integer height;private Integer width;public Rectangle(Integer height,Integer width) {// TODO 自动生成的构造函数存根this.height=height;this.width=width;}@Overridepublic Double getArea() {// TODO 自动生成的方法存根return height.doubleValue()*width.doubleValue();}
}class Triangle extends Area{//求三角形面积private Integer a;private Integer b;private Integer c;Triangle(Integer a,Integer b,Integer c){this.a=a;this.b=b;this.c=c;}@Overridepublic Double getArea() { // TODO 自动生成的方法存根Double p=(a+b+this.getC())/2.0;return Math.sqrt( p*(p-a)*(p-b)*(p-this.getC()));//使用海伦公式:S= 根号下p(p-a)(p-b)(p-c) }public Integer getC() {if(a+b<c || a+c<b || b+c<a){System.out.println("三角形的第三边大于两边之和,不能计算面积!");}return c;}}//测试类
public class GrapDemo {public static void main(String[] args) {Double area=new Circle(2).getArea();//两行代码转成一行代码,同等:circle n=new circle();n.getArea();System.out.println("圆的面积为:"+area+"平方厘米");Double rectangle=new Rectangle(10,20).getArea();System.out.println("矩形的面积为:"+rectangle+"平方厘米");Double rriangle=new Triangle(23,12,23).getArea();System.out.println("三角形的面积为:"+rriangle+"平方厘米");}
}