zoukankan      html  css  js  c++  java
  • 20200726 千锤百炼软工人第二十一天

    今天学了JAVA的克隆部分

    克隆分为浅克隆和深克隆

    个人理解浅克隆就是只克隆此对象的那些不是引用的属性和方法

    而那些被引用的属性和方法

    会让克隆产生的那个对象也引用那些属性和方法

    着部分两者是共同引用的

    而不是另外开辟的一部分内存来存储的信息

    而深克隆就是另外开辟一部分内存来存储那些被引用的属性和方法

    其次写了一个小小的继承的程序

    是一个点类和圆类的程序

    在此放上代码和截图

    点类

    package a20200725;
    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 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 a20200725;
    public class Circle extends point {
     private 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 a20200725;
    import  java.util.Scanner;
    public class main {
     public static void main(String[] arg) {
      double r;
      Scanner R = new Scanner(System.in);
      r = R.nextDouble();
      Circle c1 = new Circle(1,2,4);
      Circle c2 = new Circle();
      Circle c3 = new Circle(c1);
      c1.show();
      System.out.print(" Area="+c1.area()+" Circumference="+c1.circumference()+" ");
      c2.show();
      System.out.print(" Area="+c2.area()+" Circumference="+c2.circumference()+" ");
      c3.setRadius(r);
      c3.show();
      System.out.print(" Area="+c3.area()+" Circumference="+c3.circumference()+" ");
      c1=null;
      c2=null;
      c3=null;
      R=null;
      System.gc();
     }
    }
    截图
  • 相关阅读:
    Centos启动Cassandra交互模式失败:No appropriate python interpreter found
    删除Kafka的topic
    《面向中国资本市场应用的分布式总账白皮书》笔记
    搭建Kafka集群(3-broker)
    【转】矩阵求导计算规则
    二次型求导
    解决: org.iq80.leveldb.DBException: IO error: C:data rie00945.sst: Could not create random access file.
    SSH遇见的问题
    解决:Redis:java.util.NoSuchElementException: Unable to validate object at
    【转】mysql查询结果输出到文件
  • 原文地址:https://www.cnblogs.com/huangmouren233/p/13381421.html
Copyright © 2011-2022 走看看