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分献上,莫嫌弃.:)

解决方案 »

  1.   

    你可以在Test2.java中直接写t1.method1("sssss");
      

  2.   

    没明白楼主什么意思
    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
    可以调用啊
      

  3.   

    public class Test1 {
    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
      

  4.   

    这是一种方式可以使用,还有一种就是在Test1的method1方法中直接输出:
    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");
        }
    }
      

  5.   

    我把你的代码完善一下:
    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中来用,需要先引用过来,不然它就在内存中,你没法去使用它。
      

  6.   


    code=Java]public class Test2 {
        public static void main(String[] args) {
            Test1 t1 = new Test1();
             t1.method1("sssss");
            //System.out.println(t);
        }
    }[[/code]
    这好使啊,不知楼主咋个意思?
      

  7.   

    你的jdk是哪个版本?什么开发环境?
      

  8.   

    public class Test1{
       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"));
        }
     
    }
      

  9.   

    java版经久不衰的问题,LZ多看一下java基础。
    首先java中数据类型分为基本数据类型(8种)和引用型
    当基本类型变量被当做参数传递给方发的时候是值传递(布尔变量也是的),即拷贝一份该基本类型变量传给方法,即你的test1里面的i是一份拷贝的局部变量,它的作用于只是method1,当出了method1它的生命周期也就结束了,所以他在method1里面是不能改变原变量的值的,所以需要一个返回
    当引用型变量被当做参数传递的时候,是值传递,这个值就是对象的引用,因此java里面都是值传递(这是有争议的),所以在方法体内也不能给原变量重新赋值,但可以改变所指的对象的属性
      

  10.   

    可以啊
    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。
      

  11.   

    可以调用的,不用把返回值赋给变量,直接就能System.out.println(t1.method1("sssss"));