若有以下说明,则在类外使用对象objX成员的正确语句是谁?为什么 class X { int a; void fun1(); public: void fun2(); }; X objX; (A)objX.a=0; (B)objX.fun1(); (C)objX.fun2(); (D)X::fun1();
时间: 2024-04-16 08:25:15 浏览: 25
在类外使用对象objX的成员的正确语句是(C)objX.fun2();。这是因为fun2()是一个公有成员函数,可以通过对象来调用。而选项(A)和(B)都是错误的,因为a是一个私有成员变量,fun1()是一个私有成员函数,不能在类外直接访问。选项(D)X::fun1()也是错误的,因为fun1()是一个非静态成员函数,不能使用类名来调用。
相关问题
如果你想用对象X来处理TextArea对象Y的TextEvent事件,如何为Y注册一个监听器
可以通过以下步骤为 TextArea 对象 Y 注册 TextEvent 监听器,使其使用对象 X 来处理事件:
1. 创建一个实现 TextListener 接口的类,例如:
```
public class MyTextListener implements TextListener {
private ObjectX objX;
public MyTextListener(ObjectX objX) {
this.objX = objX;
}
// 实现处理 TextEvent 事件的方法
public void textValueChanged(TextEvent e) {
// 处理事件的代码
objX.handleTextEvent(e);
}
}
```
2. 在需要监听的 TextArea 对象 Y 上添加 TextListener 监听器,例如:
```
TextArea myTextArea = new TextArea();
ObjectX myObjectX = new ObjectX();
MyTextListener myTextListener = new MyTextListener(myObjectX);
myTextArea.addTextListener(myTextListener);
```
此代码将创建一个 TextArea 对象,并将一个 MyTextListener 对象作为其 TextListener。当 TextArea 中的文本发生变化时,MyTextListener 的 textValueChanged 方法将被调用,由对象 X 处理事件。
注意:在 MyTextListener 的构造函数中,将对象 X 作为参数传入,以便在处理事件时可以调用其方法。
如果你想用对象X来处理TextArea对象Y的TextEvent事件,如何为Y注册一个监听器:
可以通过以下步骤为 TextArea 对象 Y 注册 TextEvent 监听器,使其使用对象 X 来处理事件:
1. 创建一个实现 TextListener 接口的类,例如:
```
public class MyTextListener implements TextListener {
private ObjectX objX;
public MyTextListener(ObjectX objX) {
this.objX = objX;
}
// 实现处理 TextEvent 事件的方法
public void textValueChanged(TextEvent e) {
// 处理事件的代码
objX.handleTextEvent(e);
}
}
```
2. 在需要监听的 TextArea 对象 Y 上添加 TextListener 监听器,例如:
```
TextArea myTextArea = new TextArea();
ObjectX myObjectX = new ObjectX();
MyTextListener myTextListener = new MyTextListener(myObjectX);
myTextArea.addTextListener(myTextListener);
```
此代码将创建一个 TextArea 对象,并将一个 MyTextListener 对象作为其 TextListener。当 TextArea 中的文本发生变化时,MyTextListener 的 textValueChanged 方法将被调用,由对象 X 处理事件。
注意:在 MyTextListener 的构造函数中,将对象 X 作为参数传入,以便在处理事件时可以调用其方法。