参数传值以及对象的组合

1.参数传值,顾明思意,就是把一个变量的数值传给另一个变量。
比如:

int x = 10,y;
 y = x;

其中x的值传给y了,y的值是10,但x的值仍是10。
其中到底是怎么实现的呢?
其实在这里的传值(即赋值)所用的值不是x的本值,而是它的拷贝。
所以不会影响x的值。参数y得到的值相当于生活中的”原件“”的“复印件“。
对y的操作不会对x有影响,这就是参数的传值原理。同理,引用类型的参数的传的值是地址数也是拷贝来的。

2.对象的组合
首先我们知道一个类可以吧某个对象作为自己的一个成员变量,若用这样的类创建一个对象,那么这个对象中就会有其他的对象,也就是说这个的对象将其他的对象作为自己的组成部分,这就是Has-A.
如果对象a组合了对象b,那么对象a就可以委托对象b调用其方法,就是对象a以组合的方式复用对象b的方法。
我们可以用这样的方法引用其他类里的方法。

例子:

package shaman4_2;

public class Family {
    TV homeTV;
    void buyTV(TV tv)
    {
        homeTV = tv;
    }
    void remoteControl(int m)
    {
        homeTV.setChannel(m);

    }
    void seeTV()
    {
        homeTV.showProgram();
    }
}
package shaman4_2;

public class TV {
    int channel;
    void setChannel(int m)
    {
        if(m>=1) {
            channel = m;
        }
    }
    int getChannel()
    {
        return channel;

    }
    void showProgram()
    {
        switch(channel)
        {
            case 1 : System.out.println("综合频道");
                break;
            case 2 : System.out.println("经济频道");
                break;
            case 3 : System.out.println("文艺频道");
                break;
            case 4 : System.out.println("国际频道");
                break;
            case 5 : System.out.println("体育频道");
                break;
            default : System.out.println("不能收看"+channel+"频道");
        }
    }
}
package shaman4_2;

public class MainClass {
    public static void main(String[] args) {
        TV haierTV = new TV();
        haierTV.setChannel(5);
        System.out.println("haierTV的频道是"+haierTV.getChannel());
        Family zhangSanFamily = new Family();
        zhangSanFamily.buyTV(haierTV);
        System.out.println("zhangSanFamily开始看电视节目");
        zhangSanFamily.seeTV();
        int m = 2;
        System.out.println("zhangSanFamily将电视更换到"+m+"频道");
        zhangSanFamily.remoteControl(m);
        System.out.println("haierTV的频道是"+haierTV.getChannel());
        System.out.println("zhangSanFamily在看电视节目");
        zhangSanFamily.seeTV();

    }
}

这个例子很好的说明了对象的组合复用
以上内容包含个人的学习总结,如存在不合理的地方,欢迎大家指出,相互学习。

发布了35 篇原创文章 · 获赞 0 · 访问量 1318

猜你喜欢

转载自blog.csdn.net/c1776167012/article/details/102720546
今日推荐