作者jimpop (popmij)
看板java
标题Re: [问题] non-static问题
时间Thu May 14 03:36:23 2009
※ 引述《TonyQ (沉默是金)》之铭言:
: ※ 引述《jimpop (popmij)》之铭言:
: : 标题: [问题] non-static问题
: : 时间: Thu May 14 03:01:15 2009
: : 我有个架构如下
: : 这样子会出现 non-static问题
: : 也就是在 nn这个函数中无法使用arr[]这个阵列
: : 想问要如何写arr[]只要定义一次
: : nn函数可以直接使用呢!?
: : 我知道定义在nn函数中就可以了~
: : 但我真正架构nn是个递回
: : 这样效率感觉很差~
: : 想问这要该怎麽改写呢!?
: : --
: : ◆ From: 125.229.95.163
: : 推 TonyQ:直接写 static int arr[]={0,1,2}; 就好啦 -_-;; 05/14 03:02
: : → jimpop:应该这麽说~~阵列内容是其它类别的资料~~如果arr[]用static 05/14 03:08
: : → jimpop:会跑出更多的non-static~~我有试过static整个框起来~但不行 05/14 03:10
: 应该这麽说 , 你根本就没搞清楚你的问题...-_-;;
: static 函式无法存取非 static 成员(也就是 instance 成员) ,
: 但是非 static 函式可以存取 static 成员 ,
: 所以从 instance 改成 static 是绝对不可能造成更多的无法存取的问题.
: (但有可能会盖到同一继承树成员同名的变数 , 但这不在你的问题范围.)
: 还有如果我没误会 , 你所谓的"用static整个框起来"
: 你说得应该是
: static{
: int arr[]={0,1,2};
: }
: 这跟 static int arr[]={0,1,2}; 完全是两回事 -_-
: 如果你想赶快解决问题 , 问题跟环境的描述多一点 ,
: 多余的臆测跟先入为主的成见 , 建议保守一点比较好.
嗯~那我把我的码po出来~
小小说明一下~
这是出问题的地方
在这上面有这六个物件~我"猜"应该不是重点
在程式一开始定义这六个物件
因我想比较它们谁最大
我就把它们全部存入一维阵列
然後再来比较
我的最大问题是:
要怎麽弄才能让arr[]这个顺利完成并让larger函数使用!?
那个递回也许有逻辑错误~但想先把这问题弄好再来想~~
谢谢T大的指引
我确实是static{}这样@@
public class a1
{
int r1=3,r2=5;
CCircle a1=new CCircle();
CTriangle a2=new CTriangle();
CSquare a3=new CSquare();
CCircle2 b1=new CCircle2();
CTriangle2 b2=new CTriangle2();
CSquare2 b3=new CSquare2();
double arr[]={a1.area(r1),a2.area(r1,r2),a3.area(r1),b1.area(r1),b2.area(r1,r2),b3.area(r1)};
public static void main(String args[])
{
System.out.println(larger(0,5,0));
}
public static double larger(int i,int a,int b)
{
if((i-1)==a)return b;
else
{
if(arr[i]>arr[i+1])return larger(i+1,a,i);
else return larger(i+1,a,i+1);
}
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 125.229.95.163