java中 类的组合与复用,复用类

java中 类的组合与复用

在一个类中用另一个类创建对象的的问题

Circle

public class Circle {
    double radius;
}

Circular

public class Circular {
    Circle bottom;
    double height;
}

TEST

public class TEST {
    public static void main(String[] args) {
        Circle circle = new Circle();//创建对象circle并分配内存
        circle.radius=10.0;//对半径赋值
        Circular circular = new Circular();//创建对象circular并分配内存
        System.out.println("circle的引用:"+circle);//
        System.out.println("圆锥的bottom的引用:"+circular.bottom);
        circular.height=5;
        circular.bottom = circle;//将circle的地址传递给bottom
        System.out.println("circle的引用:"+circle);
        System.out.println("圆锥的bottom的引用:"+circular.bottom);
        System.out.println("修改circle的半径,bottom的半径同样变化");
        circle.radius=20.0;//重新复制
        System.out.println("bottom的半径:"+circular.bottom.radius);
        System.out.println("重新创建circle,circle的引用将发生变化");
        circle = new Circle();//重新创建一个Circle类的对象
        System.out.println("circle的引用:"+circle);
        System.out.println("但不影响circular的bottom的引用");
        System.out.println("圆锥的bottom的引用:"+circular.bottom);

    }

Circle circle = new Circle();//创建对象circle,分配内存
circle.radius=10.0;//赋值为10.0

在这里插入图片描述

Circular circular = new Circular();//创建对象circular,分配内存未赋值

在这里插入图片描述

circular.bottom = circle;//将对象circle的引用传递给circular的对象bottom

在这里插入图片描述

circle.radius=20.0;//修改radius的值,circle与circular的半径不变

在这里插入图片描述

circle = new Circle();//重现创建一个circle,原来circular的引用不变

在这里插入图片描述
运行结果如下

circle的引用:demo01.Circle@73549af8
圆锥的bottom的引用:null
circle的引用:demo01.Circle@73549af8
圆锥的bottom的引用:demo01.Circle@73549af8
修改circle的半径,bottom的半径同样变化
bottom的半径:20.0
重新创建circle,circle的引用将发生变化
circle的引用:demo01.Circle@548ea21d
但不影响circular的bottom的引用
圆锥的bottom的引用:demo01.Circle@73549af8

进程已结束,退出代码 0

总结:在一个类中用另一个类来定义对象时,(circular bottom;)该对象可以调用这个类里的成员变量,并且通过地址传递调用。所以当改变radius的值时并不会影响circular的半径。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值