面向对象的比较

来源:互联网 发布:pxe网络启动winpe 编辑:程序博客网 时间:2024/05/10 17:25
<p>package com.lishaoming.main;</p>class ReadingLamp{private Circuit circuit;private Bulb bulb;public ReadingLamp(Circuit circuit,Bulb bulb){this.circuit=circuit;this.bulb=bulb;//circuit.setBulb(bulb);//bulb.setCircuit(circuit);}public void on(){circuit.switchOn();}}class Circuit{private Bulb bulb;public void switchOn(){bulb.ligth();}public void transportPower(){System.out.println("The ligth on");}//public void setBulb(Bulb bulb){//this.bulb=bulb;//}}class Bulb{private Circuit circuit;public void ligth(){circuit.transportPower();}//public void setCircuit(Circuit circuit){//this.circuit=circuit;//}}public class NodeMain{public static void main(String[] args){Circuit c1=new Circuit();Bulb b1=new Bulb();ReadingLamp rp1=new ReadingLamp(c1,b1);rp1.on();}}
程序说明:上述程序是在没有Circuit,Bulb没有指向对象的情况下编辑的。
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">
</pre><pre name="code" class="java"><pre name="code" class="java">package com.lishaoming.main;class ReadingLamp{private Circuit circuit;private Bulb bulb;public ReadingLamp(Circuit circuit,Bulb bulb){this.circuit=circuit;this.bulb=bulb;circuit.setBulb(bulb);bulb.setCircuit(circuit);}public void on(){circuit.switchOn();}}class Circuit{private Bulb bulb;public void switchOn(){bulb.ligth();}public void transportPower(){System.out.println("The ligth on");}public void setBulb(Bulb bulb){this.bulb=bulb;}}class Bulb{private Circuit circuit;public void ligth(){circuit.transportPower();}public void setCircuit(Circuit circuit){this.circuit=circuit;}}public class NodeMain{public static void main(String[] args){Circuit c1=new Circuit();Bulb b1=new Bulb();ReadingLamp rp1=new ReadingLamp(c1,b1);rp1.on();}}

程序说明:上述程序中的circuit,bulb都指明了对象。
</pre><pre name="code" class="java">
</pre><pre name="code" class="java">两者比较:如果变量名没有引用对象的话,则会出现异常空指针。

0 0
原创粉丝点击