当前位置: 首页 > 知识库问答 >
问题:

如何访问位于Java另一个类的方法中的变量?[关闭]

洪高扬
2023-03-14

想改进这个问题吗?通过编辑这篇文章添加细节并澄清问题。

我有A和B两个班:

public class ClassA {
    
    public static void main(String[] args) {
        
    }

}
public class ClassB {
    
    public void login() {
        String username = "whatever";
        String password = "whatever ever";
    }

}

正如您在类B中看到的,我有一个方法登录名,我在其中放入了两个变量。我想访问类A中这些变量的值。我怎么做?

PS:我正在使用JAVA8,我是个新手。

共有3个答案

上官鸿朗
2023-03-14

您不能在函数之外访问局部变量。您可以执行以下操作来访问该变量。

将变量创建为类变量,并使用getter获取变量值:

public class ClassB {
        private String final username = "whatever";
        private String final password = "whatever ever";
        public void login() {
            // add your login logic
        }

        public String getUsername() {
            return username;
        }
        public String getPassword() {
            return password;
        }
    }

在A中获取变量,如下所示:

public class ClassA{
        public static void main(String[] args) {
            ClassB classB = new ClassB();
            System.out.println(classB.getUsername());
            System.out.println(classB.getPassword());
        }
    }

在此处阅读有关变量作用域的更多信息

海灵均
2023-03-14

如果您真的想这样做,您必须制作ClassB的用户名和密码字段。您无法从外部代码访问局部变量。

华哲茂
2023-03-14

您可以做的最好的事情是为类B定义getter,这里有一个示例:

public class ClassB {
    String username;
        
    public void login(String username) {
        this.username = username;
    }

    public String getUserName(){
        return userName;
    }

}

而在“A”中

public class ClassA {
    
    public static void main(String[] args) {
        ClassB b = new ClassB();
        b.login("admin");
        System.out.println("UserName: " + b.getUserName());
    }

}
 类似资料:
  • 我是java新手,我不知道如何从另一个类访问变量 我正在尝试编写一个代码来发送带有未存储在本地的附件的邮件。我想访问SendMail类中ExcelFile类中编写的变量 如何在另一个类中访问excelFileAsByte并发送邮件而不将其存储在本地。我可以使用addBodyPart和ByteArrayResource将文件添加为附件吗。

  • 我有一个类Main(它具有公共静态void Main(String[]args))和另一个类MyDocument。 Main类中存在一个变量,我想从MyDocument类中的函数alphabetOccurrence()访问该变量。我该怎么做呢?我不想用它作为静态变量。任何修改只能在函数中进行,其余的代码应该保持不变。

  • 问题内容: 我试图尽可能简化我的困境。我有三节课: Α: Beta: 主要: 我希望我不要过分简化。我的问题是如何从Alpha中的方法访问cBeta.DoSomethingBeta()? 问题答案: 你需要以某种方式为Alpha类提供对cBeta的引用。有三种方法可以做到这一点。 1)在构造函数中为Alphas提供Beta。在Alpha课堂上写道: 并从main()调用cAlpha = new A

  • 问题内容: 是否可以从Java中的另一个类访问一个类中变量的实例。 假设您在A类中具有以下条件: 我想对此类中的队列进行更改,然后可以使用它从另一个类中对其进行访问。 我如何从另一个类访问缓冲区的实例?可能吗? 问题答案: 添加吸气剂: 然后,如果您有Whatever的实例:

  • 问题内容: 我正在为一个项目做老虎机。我无法从中生成新的随机数。我可以在程序启动并进行设置时将数字随机化,但是它不能满足我的需求。它仅用于测试目的。 我在另一个Java文件中。一切正常,我只是无法弄清楚如何在占位符产生新的随机量,以及按钮被按下时。 我刚刚在大约3周前才开始真正编码。 请不要讨厌,这是我有史以来的第一个项目。 问题答案: 尝试做不会按照您的预期去做,这使您可以访问 相同的 实例变量