java、eclipse基础问题。。
初学java用eclipse写用于安卓的程序。遇到一点变量处理方面的小问题。ABC/sec/com.ABC.MAIN/下有多个class,分别是:Main.javaMy1...
初学java用eclipse写用于安卓的程序。遇到一点变量处理方面的小问题。
ABC/sec/com.ABC.MAIN/下有多个class,分别是:
Main.java My1.java My2.java ……
//=================My1.java中的代码===============
//…………(省略)
public class My1 extends View
{
int X=0;
// …………
public boolean onTouchEvent(MotionEvent arg0)
{
X=2
My2.DoX(X);
//在My2.java中对应的参见分割线之下
//方法是把X的数值+2
System.out.println(X);
//我希望结果为4,可是结果是2
}
//…………
}
//==================分割线·My2.java文件内的代码============
package ……;
import ……;
public class My2
{
static int DoX(int X){
X=X+2
}
}
希望达到的办法参见中间注释,请稍详答,如能推荐一些java方面的基础而精简的电子文档(中/英),感激不尽!542209396@qq.com
另祝新春快乐^_^
50分+送上 展开
ABC/sec/com.ABC.MAIN/下有多个class,分别是:
Main.java My1.java My2.java ……
//=================My1.java中的代码===============
//…………(省略)
public class My1 extends View
{
int X=0;
// …………
public boolean onTouchEvent(MotionEvent arg0)
{
X=2
My2.DoX(X);
//在My2.java中对应的参见分割线之下
//方法是把X的数值+2
System.out.println(X);
//我希望结果为4,可是结果是2
}
//…………
}
//==================分割线·My2.java文件内的代码============
package ……;
import ……;
public class My2
{
static int DoX(int X){
X=X+2
}
}
希望达到的办法参见中间注释,请稍详答,如能推荐一些java方面的基础而精简的电子文档(中/英),感激不尽!542209396@qq.com
另祝新春快乐^_^
50分+送上 展开
6个回答
展开全部
我只能告诉你 你压根就不理解 int类型
他按值传递的
不是地址传递的
要是有多个变量 你可以用数组或者是Map aa = new HashMap();
这种可以按地址传递的类型
import javax.swing.text.View;
public class My1 extends View
{
int X = 0;
int Y = 0;
// …………
public boolean onTouchEvent(MotionEvent arg0)
{
X = 2;
Y = 2;
Map XY = new HashMap();
XY.put("X", X);
XY.put("Y", Y);
My2.DoX(XY);
//在My2.java中对应的参见分割线之下
//方法是把X的数值+2
System.out.println(XY.get("X"));
System.out.println(XY.get("Y"));
//我希望结果为4,可是结果是2
}
//…………
}
//==================分割线·My2.java文件内的代码============
public class My2
{
static int DoX(Map XY){
XY.put("X", Integer.parseInt(XY.get("X").toString()) + 2);
XY.put("Y", Integer.parseInt(XY.get("Y").toString()) + 2);
}
}
他按值传递的
不是地址传递的
要是有多个变量 你可以用数组或者是Map aa = new HashMap();
这种可以按地址传递的类型
import javax.swing.text.View;
public class My1 extends View
{
int X = 0;
int Y = 0;
// …………
public boolean onTouchEvent(MotionEvent arg0)
{
X = 2;
Y = 2;
Map XY = new HashMap();
XY.put("X", X);
XY.put("Y", Y);
My2.DoX(XY);
//在My2.java中对应的参见分割线之下
//方法是把X的数值+2
System.out.println(XY.get("X"));
System.out.println(XY.get("Y"));
//我希望结果为4,可是结果是2
}
//…………
}
//==================分割线·My2.java文件内的代码============
public class My2
{
static int DoX(Map XY){
XY.put("X", Integer.parseInt(XY.get("X").toString()) + 2);
XY.put("Y", Integer.parseInt(XY.get("Y").toString()) + 2);
}
}
展开全部
确实如楼上所说,你在My2里面的X是My2里面的,后面只有用returnX才能使对X进行输出~
不知道对你有没有用,回去用电脑调试下
不知道对你有没有用,回去用电脑调试下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
亲,My2.DoX(X);这句话错了!如果想你这么写,输出的结果永远是2!把My2.DoX(X);改成X=My2.DoX(X); 这样才可以把你的计算值接住,并输出,否则输出的永远是X=2!明白?
追问
嗯,看到你修正后的解答了,后面那个掉了个return是我当时忘了…呵呵
想追问一下,如果MyDoX里有两个变量该如何处理呢?
如MyDoX(x.y),分别对x,y进行加2,然后返回给My1.java中的x,y
追答
我想你可以定义一个数组,将返回值放在数组中……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-01-25
展开全部
import javax.swing.text.View;
public class My1 extends View
{
int X=0;
// …………
public boolean onTouchEvent(MotionEvent arg0)
{
X=2;
My2.DoX(X);
//在My2.java中对应的参见分割线之下
//方法是把X的数值+2
System.out.println(X);
//我希望结果为4,可是结果是2
}
//…………
}
//==================分割线·My2.java文件内的代码============
class My2
{
static int DoX(int X){
return X=X+2;
}
}
public class My1 extends View
{
int X=0;
// …………
public boolean onTouchEvent(MotionEvent arg0)
{
X=2;
My2.DoX(X);
//在My2.java中对应的参见分割线之下
//方法是把X的数值+2
System.out.println(X);
//我希望结果为4,可是结果是2
}
//…………
}
//==================分割线·My2.java文件内的代码============
class My2
{
static int DoX(int X){
return X=X+2;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-01-25
展开全部
import javax.swing.text.View;
public class My1 extends View
{
int X=0;
// …………
public boolean onTouchEvent(MotionEvent arg0)
{
X=2;
X=My2.DoX(X);
System.out.println(X);
}
//…………
}
//==================分割线·My2.java文件内的代码============
class My2
{
static int DoX(int X){
return X=X+2;
}
}
public class My1 extends View
{
int X=0;
// …………
public boolean onTouchEvent(MotionEvent arg0)
{
X=2;
X=My2.DoX(X);
System.out.println(X);
}
//…………
}
//==================分割线·My2.java文件内的代码============
class My2
{
static int DoX(int X){
return X=X+2;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个问题是变量的作用域问题。My2.DoX(x)整个语句是返回一个4,但是onTouchEvent方法中的x的值并没有改变,还是2。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询