1.图形类

package com.yfs.javase;

public class Shape {
//计算面积方法
public double getArea() {
System.out.println("计算面积");
return 0;
} }

2.圆

package com.yfs.javase;

public class Circle extends Shape {

	private double r;

	public Circle(double r) {
this.r = r;
System.out.println("创建圆形面积");
} public double getArea() {//覆盖父类的方法
System.out.println("计算圆形面积...");
return 3.14 * r * r;
} }

3.矩形

package com.yfs.javase;

public class Rangton  extends Shape {

	private double width;
private double length; public Rangton(double width, double length) {
this.width = width;
this.length = length;
System.out.println("创建矩形面积");
} public double getArea() {
System.out.println("计算矩形面积...");
return width * length;
} }

4.三角形

package com.yfs.javase;

public class Trantangle  extends Shape {

	private double height;
private double width; public Trantangle(double height, double width) {
this.height = height;
this.width = width;
System.out.println("创建三角形面积");
} public double getArea() {
System.out.println("计算三角形面积...");
return 1.0 / 2 * width * height;
} }

5.测试

package com.yfs.javase;

import java.util.Random;

public class Test1 {

	/**
* 编写一个图形类,提供计算面积的方法。
* 通过继承图形类,封装三角形,圆形,正方形类,
* 覆盖父类的方法。在测试类里随机产生10个图形,
* 面积求和。
*/
public static void main(String[] args) {
Shape[] shapes = new Shape[10];//存放子类对象
Random ran = new Random();
double sum = 0;
//创建随即图形
for (int i = 0; i < shapes.length; i++) {
int r = ran.nextInt(101);
if(r > 65) {
shapes[i] = new Circle(ran.nextInt(10));
} else if( r > 35 ){
shapes[i] = new Rangton(ran.nextInt(10),ran.nextInt(10));
//shapes[i].setWidth();
} else {
shapes[i] = new Trantangle(ran.nextInt(10), ran.nextInt(10));
}
}
System.out.println("================");
//计算随机图形面积
for (int i = 0; i < shapes.length; i++) {
// Circle c = (Circle)shapes[i];
// sum += c.getArea();
sum += shapes[i].getArea();//子类对象计算面积
}
System.out.println("sum = " + sum); } }

java新手笔记16 面积的更多相关文章

  1. java新手笔记24 Math/String对象

    1.Math package com.yfs.javase; public class MathDemo { public static void main(String[] args) { int ...

  2. java新手笔记32 jdk5新特性

    1.for package com.yfs.javase; import java.awt.Color; import java.util.Calendar; import java.util.Has ...

  3. java新手笔记26 Frame

    0.Calculater package com.yfs.javase; import java.awt.BorderLayout; import java.awt.Button; import ja ...

  4. java新手笔记18 类比较

    1.Shap类 package com.yfs.javase; public class Shape /*extends Object */{ //默认继承object object方法全部继承 // ...

  5. java新手笔记5 类

    1.进制转换 /* 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时, 低于10万元的部分按10%提成,高于10万元的部分,可提成7.5 ...

  6. java新手笔记3 运算符&循环

    1.包 2.运算符 public class Operator { public static void main(String[] args) { int a = 5; System.out.pri ...

  7. JAVA新手笔记 Intent对象和Bundle对象

    Intent对象和Bundle对象 功能主要是在 MainActivity中定义了2个EditText,当用户输入内容,把他传入到第二个活动, 自己新创的活动中,MyActivity中 放在MainA ...

  8. java新手笔记34 连接数据库

    1.JdbcUtil package com.yfs.javase.jdbc; import java.sql.Connection; import java.sql.DriverManager; i ...

  9. java新手笔记33 多线程、客户端、服务器

    1.Mouse package com.yfs.javase; public class Mouse { private int index = 1; private boolean isLive = ...

随机推荐

  1. 【Java基础】List迭代并修改时出现的ConcurrentModificationException问题

    现在有一个需求,要遍历一个List,假设List里面存储的是String对象,然后该需求事判断里面如果有某个对象,则添加一个新的对象进去.自然,我们得出下面的代码: import java.util. ...

  2. POJ1155 - TELE(树形DP)

    题目大意 电视台要直播一场比赛,电视网络刚好形成了一棵树,其中有M个为客户端,其他的为中转站,其中中转站与中转站以及中转站与客户端之间连接都需要一定费用,每个客户i愿意支付pay[i]元钱,问电视台在 ...

  3. (贪心5.1.2)POJ 2287 Tian Ji -- The Horse Racing

    /* * POJ_2287.cpp * * Created on: 2013年10月9日 * Author: Administrator */ #include <iostream> #i ...

  4. IOS开发之带格式的文本

    有时可能会遇到这样的问题,一个label中设置的文本含有2种以上不同的格式,又不能把它拆解为两个label来显示,这时用NSMutableAttributedString可以很好的解决问题. 示例如下 ...

  5. 解决linux redhat6下安装git的问题

    今天用到linux上的git安装过程比较曲折,记录一下: 首先会报需要perl rpm -ivh git-1.7.1-14.2.x86_64.rpm warning: git-1.7.1-14.2.x ...

  6. JS中比較2个字符串内元素的不同(字符1, 字符2, 分隔符可选)

    比較2个字符串内元素的不同(字符1, 字符2, 分隔符可选) 文件: diff.js // 演示样例使用方法 /* var str1 = "tie, mao, 55"; var s ...

  7. [欧拉] poj 2230 Watchcow

    主题链接: http://poj.org/problem? id=2230 Watchcow Time Limit: 3000MS   Memory Limit: 65536K Total Submi ...

  8. css 常见兼容性问题及解决方案

    css 兼容问题一直是困扰前端开发人员的大难题,提到兼容性立马想到了万恶的ie6,说多了都是泪,还是整理一些常见的兼容性问题以及解决的方案吧. 一. 浮动元素双边距. ①条件:ie6下,如果给元素设置 ...

  9. java20 创建服务器:ServerSocket

    创建服务器:ServerSocket import java.io.BufferedReader; import java.io.IOException; import java.io.InputSt ...

  10. vim中的一些高级命令的使用

    现在一般在windows下面对txt文档操作的时候,我一般使用gvim软件来操作,虽然没有unix/linu下面的正宗,并且很多命令没有,但是还是有很多方便之处的 下面是重温vim命令时,我我自己以前 ...