java之中要如何在一个class中调用另一个class里面的变量? 5
Class A extends C{
public A(float x, float y){...}
private int x;
public void getX{....}
}
Class B extends C{
public B(float x, float y){...}
//-------------
}
现在想在B 的 //----- 这一行表达出 调用 A 里的 x, 类似 A a.getX()
该怎么执行呢 展开
这里就用到了对象的一对一关系,你可以将对方的类作为自己类的一个属性,写在自己的属性里面,给你代码,你看看就知道
package homework4;
/**对象与对象之间的一对一关系
* 简要的说就是讲一个类作为另一个类的一个属性(注意,在这里作为属性时,不能是私有的,)
*/
public class onetoone {
public static void main(String[] args) {
// TODO Auto-generated method stub
Husband h=new Husband();
Wife w=new Wife();
h.setName("花花");
h.setSex('男');
w.setName("小红");
w.setAge(23);
h.wife=w;//将妻子类中的属性值赋予h.wife
w.husband=h;//将丈夫类中的属性赋予w.husband
System.out.println("我是"+h.getName()+",我的妻子是"+h.wife.getName()+",她今年"+h.wife.getAge()+"岁了。");
}
}
//丈夫类
class Husband{
private char sex;
private String name;
public Wife wife;
public void setSex(char sex){
this.sex=sex;
}
public int getSex(){
return sex;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public Husband(){ }
//public husband(char sex,String name){
//this.name=name;
//this.sex=sex;
//}
}
//妻子类
class Wife{
private int age;
private String name;
public Husband husband;
public void setAge(int age){
this.age=age;
}
public int getAge(){
return age;
}
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public Wife(){}
//public wife(int age,String name){
//this.age=age;
//this.name=name;
//}
}
输出结果:
2017-10-06
二、因为x使用private修饰,所以不能使用正常的方法获取x的值,如果能获取到A类的对象,可以考虑使用反射来获取
现在x里面的值是不停的会变得, 而且A里面有构造 new感觉在B里用不了, 难道没有办法获得A的值吗