zoukankan      html  css  js  c++  java
  • java 抽象方法

    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;
    	}
    	@Override
    	public 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;
    	}
    	
    	@Override
    	public 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+"平方厘米");
    	}
    }
    
    
    
  • 相关阅读:
    Django -- 10.Django和Ajax
    Django -- 9.模型层(2)
    Django -- 8.模型层(1)
    Django -- 7.模板层
    Django -- 6.视图层
    Django -- 5.路由层(URLconf)_基于Django2
    Django -- 4.Django简介
    Django -- 3.web框架
    Delphi中Chrome Chromium、Cef3学习笔记(四)
    Delphi中Chrome Chromium、Cef3学习笔记(三)
  • 原文地址:https://www.cnblogs.com/jiangxifanzhouyudu/p/6633075.html
Copyright © 2011-2022 走看看