回 帖 发 新 帖 刷新版面

主题:[讨论]我刚学JAVA 看到这种getXXX() setXXX()代码我就晕

我刚学JAVA 看到这种getXXX() setXXX()代码我就晕, 
比如下面的这个灯的例子,为什么不断的出现类似 
public void setCircuit(Circuit circuit){ 
this.circuit = circuit; 


这样的句子?哥哥们帮我一把,最好能给我一个通俗易懂的解释,另外告诉我他们的作用以后顺便帮我讲一下他们的工作流程,多谢多谢 


这是Bulb 类: 
package lamp; 

public class Bulb { 
private Circuit circuit; 

public void setCircuit(Circuit circuit){ 
this.circuit = circuit; 



public void light() { 
circuit.transportPower(); 



public void goOut() { 
System.out.println("go out"); 



这是Circuit 类 
package lamp; 

public class Circuit { 
private Bulb bulb; 

public void setBulb(Bulb bulb){ 
this.bulb = bulb; 



public void switchOn() { 
bulb.light(); 



public void switchOff() { 
bulb.goOut(); 


public void transportPower() { 
System.out.println("transport power"); 



这是ReadingLamp类 
package lamp; 

public class ReadingLamp { 
private Bulb bulb; 

private Circuit circuit; 

public ReadingLamp(Bulb bulb, Circuit circuit) { 
this.bulb = bulb; 
this.circuit = circuit; 
bulb.setCircuit(circuit); 
circuit.setBulb(bulb); 


public void setBulb(Bulb bulb) { 
this.bulb = bulb; 
bulb.setCircuit(circuit); 
circuit.setBulb(bulb); 


public void on() { 
circuit.switchOn(); 


public void off() { 
circuit.switchOff(); 


public static void main(String[] args) { 
Bulb bulb = new Bulb(); 
Circuit circuit = new Circuit(); 
ReadingLamp lamp = new ReadingLamp(bulb, circuit); 
lamp.on(); 
lamp.off(); 

}

回复列表 (共3个回复)

沙发

setXXX 就是设定/修改属性值,getXXX就是获取属性值,这有什么晕的。

在JAVA中力求做到“隐藏细节”,只对外提供接口(方法),也就是说类外部“不能”直接访问类的属性(特殊情况除外),需要通过set/get方法(接口)进行访问,包括修改和读取。

板凳

每种语言都有其语法形式,既然你学习这种语言就要习惯它的语法,

3 楼


2楼说的不错,这些都不过是SET一般用来设置属性,GET一般用来获取属性.一般来说,你初始化了一个实例以后就可以用SET来给变你的实例的属性的值,用GET来得某个实例的属性的值,当然,SET和GET 只不过是一个名字而已,我们也可以用同样的名字做相反的事情也可以做其它的事情!!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册