“分享"的正确方式是什么?不同类中方法之间的变量? [英] What's the correct way to "share" variables between methods in different classes?

查看:41
本文介绍了“分享"的正确方式是什么?不同类中方法之间的变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在不同类中的方法之间共享变量,但我不知道我是否以正确的方式执行此操作.基本上,当我想在 method2 上使用变量时,我必须将它们从 Class A 通过 method1传输"到 method2,只需看看示例,因为我不知道如何正确解释这一点.

I'm trying to share variables between methods in different classes, but I don't know if I'm doing this in the correct way. Basically when I wanna use the variables on method2 I have to "transport" them throught method1 to method2 from the Class A, just take a look at the example because I don't know how to explain this properly.

这是正确的做法吗?因为有时我会通过遍历方法来执行此操作,而且看起来很丑.

Is this the correct way to do it? Because sometimes I do this over an over through methods and it looks ugly.

示例:

public class A {
    int var1, var2, var3;        
    B b = new B();        
    b.method1(var1, var2, var3);
}

public class B {
    public void method1(int var1, int var2, int var3){
       //doSomething
        method2(var2, var3);
    }

    public void method2(int var2, int var3){ 
        //doSomething
    } 
}

顺便说一句,是否有进行代码审查的社区?我对代码很陌生,恐怕我正在创建无效的代码.

Btw, is there any community where code reviews are done? I'm pretty new to code and I'm afraid that I'm creating code that isn't effective.

感谢您的帮助!:)

推荐答案

使用 getter 和 setter 从 B 获取类 A 的变量如下..

Use getters and setters to get variable of Class A from B as following..

public class A {

    private int var1, var2, var3;

    public int getVar1(){
        return var1;
    }

    public void setVar1(int var1){
        this.var1 = var1;
    }

    public int getVar2(){
        return var2;
    }

    public void setVar2(int var2){
        this.var2 = var2;
    }

    public int getVar3(){
        return var3;
    }

    public void setVar3(int var3){
        this.var3 = var3;
    }
}

public class B{

    // Use var 1 from class A as following
    A a = new A();
    int x = a.getVar1(); //x has the value of Var1 now
    a.setVar1(2); // var1 in class A has value 2 now.
}

使用接口而不是直接调用另一个类的方法.

Use interfaces rather than directly call a method of another class.

public class A {
    private InterfaceB interfaceB;

    interfaceB.method1(var1, var2, var3);
}

public interface InterfaceB{
    public void method1(int var1, int var2, int var3);
    public void method2(int var2, int var3);
}

public class B implements InterfaceB{

    @Override
    public void method1(int var1, int var2, int var3){
        //doSomething
        method2(var2, var3);
    }

    @Override
    public void method2(int var2, int var3){ 
        //doSomething
    }
}

这篇关于“分享"的正确方式是什么?不同类中方法之间的变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆