请教:一个类的方法调用另外一个类的方法,调用完毕后如何把结果值返回给原来的类例如:test1.java
public class test1
{
public void main(String args[])
{
test2 mytest = new test2;
int aaa = 3;
mytest.ddt(aaa); //這樣就傳進去了呀...
//这里要用到test2.java方法ddt返回的值i
}
}
test2.java
public class test2
{
public void ddt(int i)
{
System.out.println(i);
//如何把结果i传到test1呢?
}
}
看了书是好像是用return?
public class test1
{
public void main(String args[])
{
test2 mytest = new test2;
int aaa = 3;
mytest.ddt(aaa); //這樣就傳進去了呀...
//这里要用到test2.java方法ddt返回的值i
}
}
test2.java
public class test2
{
public void ddt(int i)
{
System.out.println(i);
//如何把结果i传到test1呢?
}
}
看了书是好像是用return?
解决方案 »
- java html显示applet控件问题
- 父类的构造函数到底能不能被继承???
- JTable 最后一列如何自动添加JButton??
- 在MYSQL 中select bookname from book where upper(bookname) like 'xy%'
- 初学者遇到出血问题!
- 怎么会是这样 俺是菜鸟,谢谢
- 想要抛出自定义的异常是不是要在函数中声明异常类型?
- System.out.println((byte)300) 为啥是44!!!! 怎么算出来的??
- 高分,在线等:为何updatedouble、updatefloat总不成功,而用updateint就可以?
- 在jdbc里怎么判断一个connection断了没有
- 关于proxy类使用的问题
- 求邮箱系统源代码
public class test1
{
public void main(String args[])
{
test2 mytest = new test2;
int aaa = 3;
int bbb = mytest.ddt(aaa); //這樣就傳進去了呀...
//这里要用到test2.java方法ddt返回的值i
}
}
test2.java
public class test2
{
public int ddt(int i)
{
System.out.println(i);
return i;
//如何把结果i传到test1呢?
}
}
public void ddt(int i)是返回空值的,你想把i返回来,i是int类型,所以
public int ddt(int i)
不是可以了么?
是接收test1.java传过来的aaa。
是接收test1.java传过来的aaa。
```````````````
但是他要返回一个值啊,你void是不返回值的
所以要public int ddt(int i)
lz先仔细看哈书`
楼主的函数是没有返回值的,System.out.println(i);只是显示在屏幕上,不是返回;
建议把函数的定义再看看。
void f(){
//代码
return;
//代码
}
这样的 return 仅仅代表跳出函数,f也没有返回值,相当于一个procedure;
int f1(){
return 100;
}
int f(){
return f1();
}
这样的 f()执行后返回的是100,see?
如果说这一层理解了,加上类的封装之后就不明白了,可能是对类和对象的概念还不够理解。
努力吧!这只是个小问题。
2。JAVA中存在着两种类型,对象 and 简单类型(int, char, float...)如何修改传入得参数?
1。参数类型为简单类型,无论是C、C++还是JAVA,简单类型得参数传递必定是值传递而非引用传递(这里假设搂住理解值传递和引用传递这两个基本的参数传递模式),期望简单的修改参数值而影响源对象数据是不可能的(至少在JAVA中)。唯一可行的方法是通过return value返回值,比如
int add(int augend, int addend) {
return augend + addend;
}调用方:
int expectedChanger = 10;
int addend = 15;
expectedChanger = add(expectedChanger, addend);C#中引入了一种新的out param,可以解决这种状况,但一般不推荐使用,因为我们并不期望方法内部与调用外部产生某种程度的耦合,特殊情况除外。
2。参数类型为对象类型
对象类型的参数的传递通过引用完成,可以在方法体内改变被传递参数的内部数据,这可以保证变更是同步的,比如:class MyInteger {
private int i; void setI(int newI) { i = newI; }
int getI() { return i; }
}// 某个可能引起对象内部变化的方法
void change(MyInteger intValue) { intValue.setI(5); }// 外部调用此方法的代码片断
MyInteger newInt = new MyInteger(1);
change(newInt);
assertEquals(5, newInt.getI()); // 断言调用了change方法后,局部变量newInt的内部值发生了变化。但这种方法仅仅能够同步改变参数对象的内部状态,因为无论是局部变量的引用newInt,还是参数引用intValue(change方法的参数名)都引用到同一个对象。
但你不能期望在change方法内部直接改变外部的引用对象,比如:// 某个改变参数对象引用的方法
void changeReference(MyInteger intValue) { intValue = new MyInteger(5); }// 外部调用此方法的代码片断
MyInteger newInt = new MyInteger(1);
changeReference(newInt);
assertEquals(1, newInt.getI()); // 断言调用了changeReference方法后,局部变量newInt的内部值并未发生变化。原因是作为对对像引用的引用本身是一种值传递,改变参数引用的对象,不会影响到外部的引用。@.@||~
public class Test1
{
public void main(String args[])
{
test2 mytest = new test2;
int aaa = 3;
aaa = mytest.ddt(aaa); //用一个变量接收返回的值
}
}
test2.java
public class test2
{
public int ddt(int i)
{
System.out.println(i);
return i;//用一个return返回i 的数值
}
}