ATT这个是test1.javapublic class Test1 {
public String method1(String i){
System.out.println(i);
return i;
}
}
这个是test2.javapublic class Test2 {
public static void main(String[] args) {
Test1 t1 = new Test1();
String t = t1.method1("sssss");
System.out.println(t);
}
}
为什么我不能直接在Test2.java中写 t1.method1("ssss") 非得把的返回值传给另外一个变量呢.(PS 我之前是没返回值的,就个打印语句,那根本没法使用).希望大家给新手个解释,20分献上,莫嫌弃.:)
public String method1(String i){
System.out.println(i);
return i;
}
}
这个是test2.javapublic class Test2 {
public static void main(String[] args) {
Test1 t1 = new Test1();
String t = t1.method1("sssss");
System.out.println(t);
}
}
为什么我不能直接在Test2.java中写 t1.method1("ssss") 非得把的返回值传给另外一个变量呢.(PS 我之前是没返回值的,就个打印语句,那根本没法使用).希望大家给新手个解释,20分献上,莫嫌弃.:)
public class Test2 {
public static void main(String[] args) {
Test1 t1 = new Test1();
// String t = t1.method1("sssss");
// System.out.println(t);
System.out.println(t1.method1("sssss"));
}
}
输出:
sssss
sssss
可以调用啊
public String method1(String i){
System.out.println(i);
return i;
}
}public class Test {
public static void main(String[] args) {
Test1 t1 = new Test1();
System.out.println(t1.method1("sssss"));
}}
结果
sssss
sssss
public class Test1 {
public void method1(String i){
System.out.println(i);
}
}
public class Test2 {
public static void main(String[] args) {
Test1 t1 = new Test1();
t1.method1("sssss");
}
}
public class Test1 {
private String str;
public void setStr(String str){
this.str = str;
}
public String getStr(){
return this.str;
} public void printString(){
System.out.println(this.str);
}
}
这样你就可以通过3个方法来操作你的str私有变量。不过话又说回来,为什么你要返回给另外一个变量呢?很简单,需要一个自己的引用,把别人的东西(也就是str,这个String对象在内存里的东西)引用到自己的域中,这样你才能去用它。其实就是变量的作用域问题,你在Test1里return的东西,没法直接拿到Test2中来用,需要先引用过来,不然它就在内存中,你没法去使用它。
code=Java]public class Test2 {
public static void main(String[] args) {
Test1 t1 = new Test1();
t1.method1("sssss");
//System.out.println(t);
}
}[[/code]
这好使啊,不知楼主咋个意思?
public String method1(String i){
System.out.println(i);
return i;
}}
public class Test2 extends Test1{
public static void main(String[] args) {
Test1 t = new Test2();
t.method1("sssss");
System.out.println(t.method1("sssss"));
}
}
首先java中数据类型分为基本数据类型(8种)和引用型
当基本类型变量被当做参数传递给方发的时候是值传递(布尔变量也是的),即拷贝一份该基本类型变量传给方法,即你的test1里面的i是一份拷贝的局部变量,它的作用于只是method1,当出了method1它的生命周期也就结束了,所以他在method1里面是不能改变原变量的值的,所以需要一个返回
当引用型变量被当做参数传递的时候,是值传递,这个值就是对象的引用,因此java里面都是值传递(这是有争议的),所以在方法体内也不能给原变量重新赋值,但可以改变所指的对象的属性
public class Test1 {
public void method1(String i){
System.out.println(i);
}
}
public class Test2 {
public static void main(String[] args) {
Test1 t1 = new Test1();
t1.method1("ssss");
}
}
我试了一下 可以在Test1中 method1 的返回类型 为 void。