java新手笔记16 面积

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

	}

}
时间: 2024-10-13 23:25:39

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

java新手笔记3

1.包 2.运算符 public class Operator { public static void main(String[] args) { int a = 5; System.out.println("a = " + a); //a = -a; //+ - System.out.println("a = " + a); //+ 字符串链接 System.out.println("影分身" + "软件开发"); Sys

java新手笔记18 类比较

1.Shap类 package com.yfs.javase; public class Shape /*extends Object */{ //默认继承object object方法全部继承 //计算面积方法 public double getArea() { System.out.println("计算面积"); return 0; } } 2.Circle类 package com.yfs.javase; public class Circle extends Shape {

java新手笔记5

1.进制转换 /* 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时, 低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%: 20万到40万之间时,高于20万元的部分,可提成5%: 40万到60万之间时高于40万元的部分,可提成3%: 60万到100万之间时,高于60万元的部分,可提成1.5%, 高于100万元时,超过100万元的部分按1%提成, 从键盘输入当月利润I,求应发放奖金总数? */ import java

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

1.Mouse package com.yfs.javase; public class Mouse { private int index = 1; private boolean isLive = false; //跳出方法 同步锁 public synchronized void jump() { while(true) { if(!isLive ) { System.out.println("跳出第 " + index + " 田鼠"); //修改田鼠状态

java新手笔记34 连接数据库

1.JdbcUtil package com.yfs.javase.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JdbcUtil { private static final String driver = "sun.j

我的java学习笔记(16)关于对象克隆与调回

1.当拷贝一个变量时,原始变量与拷贝变量引用同一个对象,改变一个变量所引用的对象将会对另一个变量产生影响. a a1 = new a(); a a2 = a1; a2.up(10);//a1也会改变 2.如果创建一个对象的新的copy,它的状态与原来的对象一样,但以后可以各自改变各自的状态,那就需要使用clone方法. a a1 = new a(); a a2 = a1.clone(); a2.up(10);//a1不会改变了 3.如果对象中的所有数据域都属于数值或基本类型,这样的拷贝域没有任何

java新手笔记10 构造器

1.摇奖小程序 package com.yfs.javase; import java.io.IOException; import java.nio.CharBuffer; import java.util.Random; public class Demo1 { /** * 模拟摇奖 */ public static void main(String[] args) { Random ran = new Random(); int[] a = new int[7]; System.out.p

我的java学习笔记(16)关于内部类(part 1)

1.内部类是定义在另一个类中的类. 原因:a.内部类方法可以访问类定义所在的作用域中的数据,包括私有的数据. b.内部类可以对同一个包中的其他类隐藏起来. c.当想要定义一个回调函数且不想编写大量的代码时,使用匿名内部类比较便捷. 2.内部类皆可以访问自身的数据域,也可以访问创建它的外围类对象的数据域. 3.内部类的对象总有一个隐式引用,它指向了创建它的外部类对象.这个引用在内部类的定义中是不可见的. 4.外围类的设置一般都在内部类的构造器中设置. 5.只用内部类可以是私有类,而常规类只可以具有

java新手笔记15 多态

1.Animal类 package com.yfs.javase; public class Animal { public void cry() { System.out.println("动物叫..."); } } 2.Dog/Cat/Bird类 package com.yfs.javase; public class Dog extends Animal { public void cry() { System.out.println("汪 汪..."); }