• 20200730 千锤百炼软工人第二十五天


    今天完成了一个程序

    这个程序第一次感受了内部类的运用

    以及它的逻辑重要性

    其次还有学习了接口的一部分内容

    在此附上代码和运行截图

    package a20200730;
    public class Point {
     private double x;
     private double y;
     Point(double x,double y){
      this.x=x;
      this.y=y;
      System.out.print("Point Constructor run ");
     }
     Point(){
      this.x=0;
      this.y=0;
      System.out.print("Point Constructor run ");
     }
     Point(Point p){
      this.x=p.x;
      this.y=p.y;
      System.out.print("Point CopyConstructor run ");
     }
     public void finalize() {
      System.out.print("Point Destructor run ");
     }
     public void setX(double x) {
      this.x=x;
     }
     public void setY(double y) {
      this.y=y;
     }
     public void setX() {
      this.x=0;
     }
     public void setY() {
      this.y=0;
     }
     public double getX() {
      return this.x;
     }
     public double getY() {
      return this.y;
     }
     public void show() {
      System.out.print("("+this.x+","+this.y+")");
     }
     public double area() {
      return 0;
     }
    }

    圆类

    package a20200730;
    public class Circle extends Point {
     public static double PI=3.14159;
     private double radius;
     Circle(double x,double y,double r){
      this.setX(x);
      this.setY(y);
      this.radius=r;
      System.out.print("Circle Constructor run ");
     }
     Circle(Circle c){
      this.setX(c.getX());
      this.setY(c.getY());
      this.radius=c.radius;
      System.out.print("Circle CopyConstructor run ");
     }
     Circle(){
      this.setX(0);
      this.setY(0);
      this.radius=0;
      System.out.print("Circle Constructor run ");
     }
     public void finalize() {
      System.out.print("Circle Destructor run ");
     }
     public void setRadius(double r) {
      this.radius=r;
     }
     public double getRadius() {
      return this.radius;
     }
     public double circumference() {
      return this.radius*2*PI;
     }
     public double area() {
      return this.radius*this.radius*PI;
     }
     public void show() {
      System.out.print("("+this.getX()+","+this.getY()+"),Radius="+this.radius);
     }
    }

    球类

    package a20200730;
    public class Sphere extends Circle {
     private class point extends Point{
      
     }
     private class circle extends Circle{
      
     }
     private point p = new point();
     private circle c = new circle();
     Sphere(double x,double y,double r){
      c.setX(x);
      c.setY(y);
      c.setRadius(r);
      System.out.print("Sphere Destructor run ");
     }
     Sphere(Sphere a){
      this.c.setX(a.c.getX());
      this.c.setY(a.c.getY());
      this.c.setRadius(a.c.getRadius());
      System.out.print("Sphere CopyDestructor run ");
     }
     Sphere(){
      c.setX();
      c.setY();
      c.setRadius(0);
      System.out.print("Sphere Constructor run ");
     }
     public void finalize() {
      System.out.print("Sphere Destructor run ");
     }
     public double volume() {
      return c.getRadius()*c.getRadius()*c.getRadius()*c.PI*4/3;
     }
     public double circumference() {
      return c.circumference();
     }
     public double area() {
      return c.getRadius()*c.getRadius()*c.PI*4;
     }
     public double area(Sphere s) {
      return s.c.area();
      }
     public void setRadius(double r) {
      this.c.setRadius(r);
     }
     public void show() {
      this.c.show();
     }
    }
    主函数

    package a20200730;
    import java.util.Scanner;
    public class main {
     public static void main(String[] arg) {
      double r;
      Scanner r1 = new Scanner(System.in);
      r = r1.nextDouble();
      Sphere s1 = new Sphere(1,2,4);
      Sphere s2 = new Sphere(s1);
      s1.show();
      System.out.print(" Area="+s1.area()+" Volume="+s1.volume()+" ");
      s2.setRadius(r);
      s2.show();
      System.out.print(" Area="+s2.area(s2)+" Circumference"+s2.circumference()+" ");
      s1 = null;
      s2=null;
      System.gc();
     }
     
    }
    运行截图
  • 相关阅读:
    asp 中response.write
    英语学习的几个概念
    javascript学习(一)
    什么是教学大纲?
    桌面快速启动栏里的“显示桌面”没有的解决办法
    gridview的编辑功能为什么不能用?
    asp中添加数据的两种方法(access数据库)
    CSS入门
    从全国教育科学研究“十一五”规划(教育信息技术)看教育技术的研究趋势
    软件工程
  • 原文地址:https://www.cnblogs.com/huangmouren233/p/13405974.html
Copyright © 2020-2023  润新知