package hello;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class ShapeManager {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
List<Shape> shapes = new ArrayList();
System.out.println("很欢迎使用图形管理系统:");
while(true) {
System.out.println("请选择操作:");
System.out.println("1. 创建一个圆");
System.out.println("2. 创建一个矩形");
System.out.println("3. 创建一个立方体");
System.out.println("4. 创建一个圆柱");
System.out.println("5. 显示已创建的图形的面积");
System.out.println("6. 退出系统");
int choice = cin.nextInt();
switch(choice) {
case 1:
System.out.println("输入半径:");
double r = cin.nextDouble();
shapes.add(new Circle(r));
break;
case 2:
System.out.println("输入矩形的宽:");
double w = cin.nextDouble();
System.out.println("输入矩形的长:");
double h = cin.nextDouble();
shapes.add(new Rectangle(w,h));
break;
case 3:
System.out.println("根据已经创建的矩形,进行创建:");
System.out.println("请输入立方体的高:");
double height = cin.nextDouble();
Rectangle base = null;
for(Shape shape:shapes) {
if(shape instanceof Rectangle) {
base = (Rectangle)shape;
break;
}
}
if(base != null) {
shapes.add(new Cube(base,height));
}else System.out.println("请先创建矩形");
break;
case 4:
System.out.println("根据已经创建的圆形,进行创建:");
System.out.println("请输入圆柱的高:");
double height2 = cin.nextDouble();
Circle base2 = null;
for(Shape shape:shapes) {
if(shape instanceof Circle) {
base2 = (Circle) shape;
break;
}
}
if(base2 != null) {
shapes.add(new Clinder(base2,height2));
}else System.out.println("请先创建一个圆形");
break;
case 5:
double sum = 0;
for (Shape shape : shapes) {
sum+=shape.getArea();
System.out.println("图形的面积: " + shape.getArea());
}
System.out.println("总共:"+sum);
break;
case 6:
System.out.println("退出系统.");
cin.close();
return;
default:
System.out.println("无效的选项,请重试.");
}
}
}
}
abstract class Shape{
public abstract double getArea();
}
class Rectangle extends Shape{
private double weight;
private double height;
public Rectangle(double weight,double height) {
this.weight = weight;
this.height = height;
}
public double getArea() {
return this.weight*this.height;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}
}
class Circle extends Shape{
private double r;
public Circle(double r) {
this.r = r;
}
public double getR() {
return this.r;
}
@Override
public double getArea() {
return Math.PI*r*r;
}
}
class Cube extends Rectangle{
private double height;
private Rectangle r;
public Cube(Rectangle r,double height) {
super(r.getWeight(),r.getHeight());
this.height = height;
}
public double getArea() {
return super.getArea()*2+super.getWeight()*this.height*2+super.getHeight()*this.height*2;
}
}
class Clinder extends Circle{
private double height;
private Circle c;
public Clinder(Circle c,double height) {
super(c.getR());
this.height = height;
}
public double getArea() {
return super.getArea()*+super.getR()*2*Math.PI*this.height;
}
}
package hello;
import java.io.*;
public class ShapeManager{
public static void main(String[] args) {
Audi_A6 a6 = new Audi_A6();
a6.startUp();
a6.danqiturbo();
Audi_A8 a8 = new Audi_A8();
a8.startUp();
a8.danqiturbo();
MercedesBenz m = new BMW_x3();
m.startUp();
m.xiaopenturbo();
}
}
abstract class Car{
public abstract void startUp();
}
abstract class Audi extends Car{
public abstract void danqiturbo();
}
abstract class MercedesBenz extends Car{
public abstract void xiaopenturbo();
}
class Audi_A6 extends Audi{
public void startUp() {
System.out.println("调用奥迪A6启动功能");
}
public void danqiturbo() {
System.out.println("调用奥迪加速");
}
}
class Audi_A8 extends Audi{
public void startUp() {
System.out.println("调用奥迪A8启动功能");
}
public void danqiturbo() {
System.out.println("调用奥迪加速");
}
}
class BMW_x3 extends MercedesBenz{
public void startUp() {
System.out.println("调用宝马x3启动功能");
}
public void xiaopenturbo() {
System.out.println("调用宝马加速");
}
}
package hello;
import java.io.*;
import java.util.*;
public class ShapeManager{
public static void main(String[] args) {
Ant a = new Ant();
a.fly();
a.getleg();
pigeon p = new pigeon();
p.fly();
p.leyegg();
}
}
interface AnimalFly{
public abstract void fly();
}
class Insect{
public int leg = 6;
}
class bird{
public void leyegg() {
}
}
class Ant extends Insect implements AnimalFly{
public void fly() {
System.out.println("蚂蚁会飞");
}
public Ant() {
// TODO Auto-generated constructor stub
}
public void getleg() {
System.out.println(this.leg);
}
}
class pigeon extends bird implements AnimalFly{
public void fly() {
System.out.println("鸽子会飞");
}
public void leyegg() {
System.out.println("鸽子会下蛋");
}
}
package hello;
import java.io.*;
import java.util.*;
public class ShapeManager{
public static void main(String[] args) {
Computer c = new Computer();
c.plugin(new Phone());
c.plugin(new Print());
c.plugin(new MP3());
MainBoard mb = new MainBoard();
//在主板上插入网卡
PCI nc = new Network();
mb.usePCICard(nc);
//在主板上插入声卡
PCI sc = new SoundCard();
mb.usePCICard(sc);
//在主板上插入显卡
PCI gc = new GraphicCard();
mb.usePCICard(gc);
}
}
interface USB{// 操作标准
public void install();
public void work();
}
//在电脑上应用此接口:
class Computer{
public void plugin(USB usb){
usb.install();
usb.work();
}
}
//定义USB设备—手机
class Phone implements USB{
@Override
public void install() {
System.out.println("安装手机驱动程序。");
}
@Override
public void work() {
System.out.println("手机与电脑进行工作。") ;
}
}
//定义USB设备—打印机:
class Print implements USB{
@Override
public void install() {
System.out.println("安装打印机驱动程序。") ;
}
@Override
public void work() {
System.out.println("进行文件打印。") ;
}
}
//定义USB设备—MP3:
class MP3 implements USB{
public void install() {
System.out.println("安装MP3驱动程序。") ;
}
public void work() {
System.out.println("进行MP3拷贝。") ;
}
}
/**
* 定义PCI接口,定义主板PCI插槽规范
* *
*/
interface PCI{
public abstract void start();
public abstract void stop();
}
/**
* 网卡实现PCI接口规范
*
*/
class Network implements PCI{
@Override
public void start() {
System.out.println("Send....");
}
@Override
public void stop() {
System.out.println("Network stop");
}
}
/**
* 显卡实现PCI接口规范
*/
class GraphicCard implements PCI{
@Override
public void start() {
System.out.println("Display Graphic...");
}
@Override
public void stop() {
System.out.println("Display Graphic stop!");
}
}
/**
* 声卡实现PCI接口规范
*/
class SoundCard implements PCI{
@Override
public void start() {
System.out.println("Du du....");
}
@Override
public void stop() {
System.out.println("Sound stop");
}
}
/**
* 主板类
*/
class MainBoard{
/**
* 通过这个方法,主板上可以插入任何实现PCI接口规范的卡
*
* @param pci 参数类型为接口,任何实现接口的类都可以传进来.
*/
public void usePCICard(PCI pci){
pci.start();
pci.stop();
}
}