在A类已经赋值给a1对象值了,为什么还要在B类中继续赋值 我需要的是直接用 而不是还需要赋值
时间: 2024-03-26 11:34:34 浏览: 47
如果你想在 B 类中使用 A 类对象的值,可以将 A 类对象作为参数传递给 B 类中的方法或构造函数。
具体步骤如下:
1. 在 B 类中定义方法,接受 A 类对象作为参数:
```
public class B {
public void printValue(A a) {
int value = a.getValue();
System.out.println("A 类对象的值为:" + value);
}
}
```
2. 在 A 类中创建 2 个对象并赋值:
```
A a1 = new A();
a1.setValue(1);
A a2 = new A();
a2.setValue(2);
```
3. 在 B 类中调用方法,并将 A 类对象作为参数传递:
```
B b = new B();
b.printValue(a1);
b.printValue(a2);
```
在 B 类中,通过创建 B 类的对象 b,然后分别调用它的方法 printValue(),并将 A 类对象 a1 和 a2 作为参数传递,来获取 A 类对象的属性值。最终输出 a1 和 a2 的值。
需要注意的是,如果 A 类的属性是私有的,需要在 getter 方法中添加 public 访问修饰符或者将属性的访问级别改为 public,才能在 B 类中访问该属性。
相关问题
假如我定义了两个类,一个类是A, 一个类是B,我已经在A创建了2个A对象并赋值,我如何在B类获取到这2个A类对象的值
要在 B 类中获取 A 类对象的值,可以使用 A 类的 getter 方法。如果 A 类的属性是私有的,需要使用 getter 方法来获取属性值。
具体步骤如下:
1. 在 A 类中定义属性,并生成 getter 方法:
```
public class A {
private int value;
public void setValue(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
```
2. 在 A 类中创建 2 个对象并赋值:
```
A a1 = new A();
a1.setValue(1);
A a2 = new A();
a2.setValue(2);
```
3. 在 B 类中获取 A 类对象的值:
```
public class B {
public static void main(String[] args) {
A a1 = new A();
a1.setValue(1);
A a2 = new A();
a2.setValue(2);
// 获取 a1 的值
int value1 = a1.getValue();
System.out.println("a1 的值为:" + value1);
// 获取 a2 的值
int value2 = a2.getValue();
System.out.println("a2 的值为:" + value2);
}
}
```
在 B 类中,通过创建 A 类的对象 a1 和 a2,然后分别调用它们的 getter 方法 getValue() 来获取属性值。最终输出 a1 和 a2 的值。
需要注意的是,如果 A 类的属性是私有的,需要在 getter 方法中添加 public 访问修饰符或者将属性的访问级别改为 public,才能在 B 类中访问该属性。
设计一个类CPt,该类有两个数据成员x,y还有一个对象备份函数copy,copy功能如下:如果定义类A对象a1,a2,调用函数a1.copy(&a2)表示将对象a2的x,y赋值给对象a1的x,y(提示用this判断是否给自己赋值)
好的,这是一个关于设计类的问题。CPt类有两个数据成员x和y,还有一个备份函数copy。copy函数的功能是将对象a2的x,y赋值给对象a1的x,y。如果调用a1.copy(&a2),则需要判断是否给自己赋值,可以使用this指针来实现。具体实现如下:
```c++
class CPt {
public:
int x, y;
void copy(CPt* p) {
if (this != p) {
this->x = p->x;
this->y = p->y;
}
}
};
```
在copy函数中,首先判断this指针是否等于p指针,如果不等于,则将p指针所指对象的x,y值赋值给this指针所指对象的x,y值。这样就可以实现对象备份的功能了。
阅读全文