内部类对象给私有变量赋值
时间: 2023-07-25 18:36:31 浏览: 63
可以通过在外部类中定义一个公共的方法来实现内部类对象给私有变量赋值。具体实现步骤如下:
1. 在外部类中定义一个公共的方法,该方法的参数是内部类的对象。
2. 在方法中,通过调用内部类对象的方法获取其属性值,然后将其赋值给外部类的私有变量。
例如,假设我们有一个外部类A和一个内部类B,B有一个属性name,现在要将B的name属性值赋值给A的私有变量privateName,可以如下实现:
```
public class A {
private String privateName;
public void setPrivateName(B b) {
privateName = b.getName();
}
public class B {
private String name;
public String getName() {
return name;
}
}
}
```
然后,在外部类中调用setPrivateName方法,将内部类对象传递进去即可:
```
A a = new A();
A.B b = a.new B();
b.setName("test");
a.setPrivateName(b);
```
相关问题
java怎么给私有变量赋值
在Java中,私有变量是不能被直接访问和赋值的。但是,可以通过公有的setter方法来给私有变量赋值。setter方法是一个公有的方法,用于设置私有变量的值。下面是一个例子:
```
public class MyClass {
private int myVar;
public void setMyVar(int value) {
myVar = value;
}
}
```
在这个例子中,我们定义了一个私有变量myVar,并且提供了一个公有的setter方法setMyVar(),用于设置myVar的值。在使用时,我们可以这样调用setMyVar()方法来给myVar赋值:
```
MyClass obj = new MyClass();
obj.setMyVar(10);
```
这样,myVar的值就被设置为10了。
构造函数可以赋值给私有变量吗
可以的,构造函数可以赋值给私有变量。在类中,私有变量只能在类的内部访问,因此构造函数可以在类的内部将私有变量初始化为一个特定的值。这样可以确保私有变量被正确初始化,而且不会被外部访问和修改。以下是一个示例代码:
```
class Example {
private:
int value;
public:
Example(int val) {
value = val;
}
};
```
在这个示例中,构造函数 `Example(int val)` 可以被用来给私有变量 `value` 赋值。这样,在创建一个 `Example` 对象时,构造函数会被调用并初始化私有变量 `value`。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)