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. algorithm@ dijkstra algorithm & prim algorithm

    #include<iostream> #include<cstdio> #include<cstring> #include<limits> #incl ...

  2. MySQL 数据库中用户表中口令登陆设置

    工具:MyEclipse8.5.apache-tomcat-6.0.43.MySQL5.6 问题:项目是同事发给我,正常运行之后,使用MySQL表里的管理员数据登陆时,提示“仅限于非总部工号登录!” ...

  3. hdoj 2546 饭卡

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...

  4. fileupload控件上传、文件下载

    常遇到上传下载的功能,这里把我习惯的用法写下来: 上传: string fileName = "";fileName = this.fu_pic.FileName;if (stri ...

  5. 用户名 不在 sudoers文件中,此事将被报告

    解决方法: 1.通过编辑器来打开/etc/sudoers 2.直接使用命令visudo 打开sudoers后,如下加上自己的帐号保存后就可以了. # User privilege specificat ...

  6. Node.js初级

    package.json文件字段说明 name:包名.包名是唯一的,只能包含小写字母.数字和下划线. version:包版本号. description:包说明. keywords:关键字数组.用于搜 ...

  7. uedit富文本编辑器

    问题: 1: An error occurred at line: 6 in the generated java fileOnly a type can be imported. com.baidu ...

  8. cocos2d-x 屏幕适配新解

    转自:http://blog.leafsoar.com/archives/2013/05-10-19.html 为了适应移动终端的各种分辨率大小,各种屏幕宽高比,在 cocos2d-x(当前稳定版:2 ...

  9. 【转】在Windows下搭建React Native Android开发环境

    http://www.jianshu.com/p/2fdc4655ddf8 安装JDK 从Java官网下载JDK并安装.请注意选择x86还是x64版本. 推荐将JDK的bin目录加入系统PATH环境变 ...

  10. FormMove

    private    { Private declarations }    procedure WMMOVE(var Msg: TMessage); message WM_MOVE;  proced ...