class A{
public a{
long name =0;
B.b(name);System.out.println("name:" + name);
}}
class B{
public static b(long name){name = 5;
}}
 为什么name的值还是0,而不是5呢

解决方案 »

  1.   

    你的name是变量,不是类对象.你虽然调用了静态方法,但是不影响你A类中的变量.
      

  2.   

    如果要想改变值要用引用传递,值传递是不行的,建议在看看JAVA中这块的东西(参数传递)
      

  3.   

    如果是传递long,int等基本类型变量,则无法完成你所想的.
    对于基本类型变量,处理方式跟C++一样,形参无法改变实参.
      

  4.   

    A类中的变量name 和 B类方法b中的name 是2个不同的变量 对于B类b方法中的变量name修改值对于A类中的变量name 是不可见的 所以A类中的name还是0 如果想要把A类中的name变成5 需要把值返回就可以了
    class test 
    {
    public static void main(String[] args) 
    {
    System.out.println("Hello World!");
    A  aa=new A();
    }
    }
    class A{
    public A(){
    long name =0;
    name=B.b(name);
    System.out.println("name:" + name);
    }}
    class B{
    public static long b(long name){
    return name = 5;
    }}
    LZ写完之后没编译吧?  提醒一下 构造方法必须和类名一致  JAVA中严格区分大小写 还有就是方法如果有返回值必须指定返回值类型 没返回值要加void关键字
      

  5.   

    知道拉,如果用stringbuffer 和Long之类类型就可以是把,哈哈
      

  6.   

    不对呀,我用LOng对象也传不回值呢
      

  7.   

    class A{
    public A()
    {
    long name =0;
    name=B.b(name);

    System.out.println("name:" + name);
    }
    }
    class B{
    public static long b(long name){name = 5;
    return name;
    }}
    class Test
    {
    public static void main(String[]args)
    {
    A a=new A();
    }
    }
    }
      

  8.   

    class A{
    public A(){
                      int name=0;
    B.b(name);
    System.out.println("name:" + name);
    }
    }

    class AA{
    public static void main(String[] args){
    A a=new A();
    }
    }class B{
    public static void b(int name){
    name=5;
    }
    }
    楼住的程序应该没有调通,我调了一个,需要说明的是:
    在调用B.b(name)的时候。你只是将name作为一个参数传递进去,做了一个运算,但运算的结果其实是另一个值,你并没有返回。
    体会一下和下面程序的区别:
    class A{
    public static int name=0;
    public A(){
    B.b(name);
    System.out.println("name:" + name);
    }
    }

    class AA{
    public static void main(String[] args){
    A a=new A();
    }
    }class B{
    public static void b(int name){
    A.name=5;
    }
    }
    还有下面这个程序:
    class A{
    public A(){
    int name=0;
    name=B.b(name);
    System.out.println("name:" + name);
    }
    }

    class AA{
    public static void main(String[] args){
    A a=new A();
    }
    }class B{
    public static int b(int name){
    return name=5;
    }
    }
      

  9.   

    晕死 你传进b的是一个值 b怎么改变它 都不会影响到a里面的东东的
      

  10.   

    java里的参数传递的确让很多人迷惑,其实,是很简单的,传递基本数据类型的时候是按值传递的,只有传递的参数是对象的时候才是按引用传递,你去看看java编程思想的参数传递
      
      

  11.   

    楼主写的好乱
    改成这样就好了:
    public class Employee
    {
        public static void main(String[] args) {
            System.out.println("Hello World!");
            A aa = new A();
        }
    }
    class A{    public A() {
            long name = 0;
            name=B.fangfa(name);        System.out.println("name:" + name);
        }
    }class B{
    public static long fangfa(long name){return name = 5;
    }}
       
    呵呵 我也是新手