java - 如何从 Java 中的其他类调用变量?
问题描述
我目前正在重新制作我使用 OOP 开发的基于文本的 RPG 游戏之一。我想知道如何从其他类调用变量。目前,我的程序给了我一个错误,因为它无法解析符号“playerHealth”,因为它在另一个类中。我下面的类是 BattleSequence 类,我想称之为“playerHealth”的变量在 Player 类中。我该怎么做呢?
public class BattleSequence {
public static void main(String agrs[]) {
System.out.println("Welcome to the dungeon!");
while (playerHealth > 0) {
System.out.println("---------------------------");
}
}
}
解决方案
您没有在这里展示您的其他课程,但我假设您正在尝试执行以下操作:
public class SomeClass
{
public int playerHealth = 10; // Or some number
}
public class BattleSequence {
public static void main(String agrs[]) {
System.out.println("Welcome to the dungeon!");
while (playerHealth > 0) {
System.out.println("---------------------------");
}
}
}
为此,您必须实际创建一个实例SomeClass
:
public class BattleSequence {
public static void main(String agrs[]) {
System.out.println("Welcome to the dungeon!");
SomeClass myClass = new SomeClass();
while (myClass.playerHealth > 0) {
System.out.println("---------------------------");
}
}
}
这是一个类比:假设你想吃一些巧克力曲奇。你绝对不能只看食谱就拿一些——你实际上必须用食谱来做一些饼干。我在这里稍微简化了一点(例如,通过忽略静态变量),但这基本上就是类的工作方式——类本身并没有真正做任何事情。它们只是制作物品的“配方”。在您实际创建对象之前,类中的变量实际上并不存在。
一些快速说明:您可能需要考虑使用getter 和 setter,而不是直接访问该字段。SomeClass
此外,您显然希望使用比myClass
我在这里使用的更有意义的名称。选择对你的程序有意义的东西,而不是我使用的通用名称。
推荐阅读
- react-native - FlatList - 将 ScrollView 内容位置保持在同一位置?
- css - Internet Explorer - CSS box-Shadow on table 不适用于 IE 浏览器
- ios - 克隆 repo 后 pod 出错
- scala - EMR 集群上的 spark Join 性能
- java - Vaadin - 在图像顶部添加文本
- grails - 运行单个集成测试/单个测试类
- nlp - 如何在没有文档上下文的情况下对 spacy 文本进行去标记?
- ios - UIViewController 的委托函数决定弹出
- php - 如何将 SPL 库添加到 PhpStorm 中,以便它识别 PHPDoc 的 SPL 异常
- .net - 使用 LINQ 选择 XML 节点