zoukankan      html  css  js  c++  java
  • 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();
     }
     
    }
    运行截图
  • 相关阅读:
    常见错误--06.18
    类目-延展-协议
    iOS页面传值-wang
    ios常见的页面传值方式
    delegate和protocol
    沙盒路径及文件 操作
    tableView优化性能
    IOS面试题
    浅谈Runloop
    面试题
  • 原文地址:https://www.cnblogs.com/huangmouren233/p/13405974.html
Copyright © 2011-2022 走看看