公共属性是可以通过对象来获取到的
但是私有属性 只能在当前类中访问,如果需要在另一个类中强制使用该属性,
可以通过反射来破坏封装,来实现访问 私有属性,
下面是一个简单的 小例子。可以用来帮助你理解!
import java.lang.reflect.Field;
public class A {
public static void main(String[] args)throws Exception {
//获取类对象
Class clazz = B.class;
//根据B类中的属性名c获取属性
Field f = clazz.getDeclaredField("c");
//破换封装(允许在A类中访问B类中的私有属性c)
f.setAccessible(true);
//根据反射创建b2对象
B b = (B)clazz.newInstance();
System.out.println("原值"+f.getInt(b));
//修改私有属性的值为100
f.setInt(b, 100);
System.out.println("修改后值"+f.getInt(b));
}
}
class B{
private int c=10;
public int d =11;
}
同类的用this.A2, 或者直接用A2
不同类的用getter和setter
public class A {
private int A2;
public void setA2(int v) {
this.A2 = v; // 或者 A2=v;
}
public int getA2() {
return this.A2; //或者return A2;
}
}
可以生成set,get方法进行访问