如何在一个对象b1中调用生成这个对象的对象a1的一个方法。 public class b extends a{ public b(){ super(); } b b1=new b();}记不太清楚了,好象是这样或者b b1=new a(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果 class b extends a那么 b b1=new a();是错误的,应该颠倒过来:a a1=new b(); 多谢帮我问,不同意楼上的说法,两个原因,因为1、b类是很简单的类要从复杂的a类继承太不合理了2、所有的b类实例都要存取的是一个a1类里面的二位数组,而不是各自的. 在b类定义一个构造函数b(a a1),在a类中调用创建b1时,将a类的一个实例a1传进去。 需求:1.运行时,a只能有一个实例,b类有多个实例2.b类的实例对象obj能随时调用a类实例a1,并能随时设置a1的数组array.我的代码如下(欢迎批评指正):class a{ int[][] array; private static a a1 = new a(); a(){ } public static a getA(){ return a1; }}class b{ a a1=a.getA(); b() { } void setArray(int[][] temp){ a1.array=temp; }}class Test{ public static void main(String[] args) { b obj=new b(); int[][] temp={{1,2},{3,4},};//可随意设置 obj.setArray(temp); for(int i=0;i<obj.a1.array.length;i++) for(int j=0;j<obj.a1.array[i].length;j++) System.out.println("array["+i+"]["+j+"] = "+obj.a1.array[i][j]); }} 非常同意 han10(虚心学习中...) 的做法,不过你的for(int i=0;i<obj.a1.array.length;i++) for(int j=0;j<obj.a1.array[i].length;j++) System.out.println("array["+i+"]["+j+"] = "+obj.a1.array[i][j]);要改成a newa= a.getA();for(int i=0;i<newa.array.length;i++) for(int j=0;j<newa.array[i].length;j++) System.out.println("array["+i+"]["+j+"] = "+newa.array[i][j]);才对 另外如果你的int[][] array;改成static int[][] array;则上面可以改成for(int i=0;i<a.array.length;i++) for(int j=0;j<a.array[i].length;j++) System.out.println("array["+i+"]["+j+"] = "+a.array[i][j]);另外你的变量名array不太好。欢迎大家批评指正 一道很有意思的笔试题:继承中关于super的相关问题 String.split()问题 java正则:com.factory.web.Person,取出Person 怎么写? java中二叉树删除节点问题(假设只删除一个) 请问一个读string的问题!!! 如何在鼠标事件中处理Graphic类的对象,在线等待。。。 关于UltraEdit的使用问题 类似csdn这样左面的目录树怎样实现? 在贴一次!望各位不吝赐教! 在XP下用Ant出现以下报错,请高手帮忙 请问如何实现jtree得刷新呢 怎么让JButton获得焦点
两个原因,因为
1、b类是很简单的类要从复杂的a类继承太不合理了
2、所有的b类实例都要存取的是一个a1类里面的二位数组,而不是各自的.
1.运行时,a只能有一个实例,b类有多个实例
2.b类的实例对象obj能随时调用a类实例a1,并能随时设置a1的数组array.
我的代码如下(欢迎批评指正):
class a{
int[][] array;
private static a a1 = new a();
a(){
}
public static a getA(){
return a1;
}}class b{
a a1=a.getA();
b()
{
}
void setArray(int[][] temp){
a1.array=temp;
}
}class Test{
public static void main(String[] args) {
b obj=new b();
int[][] temp={{1,2},{3,4},};//可随意设置
obj.setArray(temp);
for(int i=0;i<obj.a1.array.length;i++)
for(int j=0;j<obj.a1.array[i].length;j++)
System.out.println("array["+i+"]["+j+"] = "+obj.a1.array[i][j]);
}
}
for(int i=0;i<obj.a1.array.length;i++)
for(int j=0;j<obj.a1.array[i].length;j++)
System.out.println("array["+i+"]["+j+"] = "+obj.a1.array[i][j]);
要改成
a newa= a.getA();
for(int i=0;i<newa.array.length;i++)
for(int j=0;j<newa.array[i].length;j++)
System.out.println("array["+i+"]["+j+"] = "+newa.array[i][j]);
才对
另外如果你的int[][] array;
改成static int[][] array;
则上面可以改成
for(int i=0;i<a.array.length;i++)
for(int j=0;j<a.array[i].length;j++)
System.out.println("array["+i+"]["+j+"] = "+a.array[i][j]);
另外你的变量名array不太好。
欢迎大家批评指正