Java 从我创建的另一个类访问数组元素

2024-05-05

我正在使用 main 方法在类中创建一个数组

Word attempts = new Word (26);

Word 类中的字段是

private String [] attempts;

Word 类中的构造函数是

public Word (int a){
        attempts = new String [a];
        create(attempts);
    }

其中 create 是一个使每个数组元素成为空字符串的方法("")。在Word课堂上我也有一个getAttempts()访问 attempts 数组的方法。现在,我想创建 Letter 类,其中传递之前创建的数组Word []在 for 循环中。我尝试使用 Word.getAttempts()[i],但出现错误Cannot make a static reference to the non-static method getAttempts() from the type Word。据我了解,当方法是静态的时,您不必在调用该方法之前创建对象。我不知道如何将 Main 方法中创建的数组传递给这个 Letter 类。有什么帮助吗?

编辑:这是我的Word类

public class Word {

private String [] attempts;

public String[] getAttempts() {
    return attempts;
}

public void create (String [] attempts){
    for (int i=0; i<attempts.length; i++){
        attempts[i]="";
    }
}

public Word (int a){
    attempts = new String [a];
    create(attempts);
    }
}

总而言之,我正在使用 Main 方法在类中创建一个 Word 类型的数组,并且我想将该数组传递给单独的 Letter 类。


Word.getAttempts()

...将是您访问名为的静态方法的方式getAttempts在班上Word。不过,你的方法getAttempts不是静态的:它适用于您的类的实例。

假设您定义这样一个实例,如下所示:

Word word = new Word(26);

然后,如果该方法是公共的,您可以使用以下方式访问该数组:

String[] attempts = word.getAttempts();

据我了解,当方法是静态的时,您不必在调用该方法之前创建对象。

是的,但你的方法不是静态的。


我明白,但是在 Main 方法中定义 Word 数组后,如何在新类中访问它?

您可以通过方法或构造函数传递对象,这允许其他对象使用公共方法定义的 API 与其进行交互。

现在,我想在 Letter 类中传递 [...] 数组

定义一个名为Letter,以及接受类对象的构造函数Word.

class Letter
{
    private final Word word;
    public Letter (Word word) {
        this.word = word;
    }
}

And in main:

public static void main (String[] args)
{
    Word word = new Word(26) ;
    Letter letter = new Letter(word);
}

可以直接通过word.getAttempts(),但是你直接使用另一个类的内部值,这是不好的风格。更好地使用实例Word通过其公共方法而不是直接访问其私有数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 从我创建的另一个类访问数组元素 的相关文章

  • Java,将 null 分配给对象和仅声明之间有什么区别

    之间有什么区别 Object o null and Object o 仅声明 有人可以回答我吗 这取决于您声明变量的范围 例如 局部变量没有default values在这种情况下你将不得不分配null手动 在这种情况下实例变量分配 nul
  • 我们如何测试我们的 Java UI?

    我们正在寻找记录和回放类型的测试工具来自动化我们的一些 UI 功能测试 我们已经研究了从 Silke 到 QTP 的大多数常见嫌疑 但没有一个起作用 当需要右键单击才能从右键单击菜单中选择某些内容时 或者当您必须在网格的下拉列表中选择一个值
  • 使用 java 的 RAR 档案 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Java byte[] 与 String 之间的转换

    为什么这个junit测试失败了 import org junit Assert import org junit Test import java io UnsupportedEncodingException public class T
  • 获取TextView的高度

    我有一些文字将被放入TextView 我这样做是使用setText 现在我需要找到文本在文本中占据的行数或高度TextView 我尝试使用getHeight 但它总是返回 0 无论如何 有没有办法获得文本中存在的文本的高度TextView
  • ASM之前看一下maxStack指令吗?

    我正在尝试使用 ASM 库将字节代码转换为不同的格式 这可以使用 MethodVisitor 来完成 就像这个简单的测试代码一样 return new MethodVisitor ASM7 Override public void visi
  • Ant 无法启动,给出主类错误

    我正在运行 Elementary OS 基于 Ubuntu 12 并且在运行 apache ant 时遇到问题 它在重新启动之前就可以正常工作 所以我不确定会发生什么变化 我在 etc environment 中定义了环境变量 如下所示 P
  • 在Java中使用BufferedWriter写入文件时监视文件大小?

    我正在将一个可能很长的项目列表写入文件 我正在写的项目的长度是可变的 如果生成的文件大小大于10M 则应将其分成多个文件 为了提高性能 我目前使用 BufferedWriter 如下所示 final FileOutputStream fos
  • 给定一个单词列表 - 在 java 中完成单词的好的算法是什么?权衡:速度/效率/内存占用

    我正在探索潜在的免费 付费应用程序的硬件 软件要求 最终目标是移动 Java 应用程序 该应用程序将从这个简单的目标开始 给定数据库中相关单词的列表 能够对单个字符串输入进行单词补全 换句话说 我已经知道数据库的内容 但算法的内存占用 速度
  • 我们必须将 .class 文件放在 Tomcat 目录中的位置

    我必须把我的 class文件在 Tomcat 目录中 在我的 Java Complete Reference 书中 他们告诉将其放入C Program Files Apache Tomcat 4 0 webapps examples WEB
  • 在 Java 中使用 Inflater 解压缩 gzip 数据

    我正在尝试使用以下方法解压缩 gzip 数据Inflater 根据文档 如果参数 nowrap 为 true 则 ZLIB 标头和校验和 字段将不会被使用 这提供了与 GZIP 和 PKZIP 使用的压缩格式 注意 使用 nowrap 选项
  • 使用 include 进行 JAXB 剧集编译不起作用

    我有 2 个模式 A B 我在 B 中重用了一些 A 元素 我不使用命名空间 我在用着
  • java 1.8下无法启动eclipse

    java 1 8 升级后我无法启动 eclipse 附上错误截图 这是我的 eclipse 配置设置 我该如何解决 startup plugins org eclipse equinox launcher 1 3 0 v20120522 1
  • 链表中的虚拟节点

    问 什么时候使用它们 作业问题 列表中的第一个和最后一个节点 有时用作列表中的第一个和最后一个节点 从未用作列表中的第一个和最后一个节点 维基百科说 哨兵节点是与链接一起使用的专门指定的节点 列表和树作为遍历路径终止符 哨兵节点的作用是 不
  • Storm Spout 未收到 Ack

    我已经开始使用storm 所以我使用创建简单的拓扑本教程 https github com nathanmarz storm wiki Tutorial 当我运行我的拓扑时LocalCluster一切看起来都很好 我的问题是我没有得到元组的
  • 计算移动的球与移动的线/多边形碰撞的时间(2D)

    我有一个多边形 里面有一个移动的球 如果球撞到边界 它应该反弹回来 My current solution I split the polygon in lines and calculate when the ball hits the
  • 如何告诉 IntelliJ 使用 Java 1.6 JDK 启动 gradle?

    一个简单的问题 即使经过几个小时的尝试和搜索 我也无法弄清楚 我安装了 Java 6 和 7 如何告诉 IntelliJ 使用 JDK 版本 1 6 启动 Gradle 构建 无论我做什么 IntelliJ 都会以以下方式开始我的 grad
  • 将带有时区的 Joda-Time `DateTime` 转换为没有时区的 DateTime?

    Given a DateTime http www joda org joda time apidocs org joda time DateTime html例如2015 07 09T05 10 00 02 00 using 乔达时间 h
  • Java,如何管理线程读取socket(websocket)?

    我有一个 WebSocket 服务器 我的服务器创建一个新线程来处理新连接 该线程一直处于活动状态 直到 websocket 中断 我的问题 对于 1 000 000 个连接 我需要 1 000 000 个线程 我如何通过一个线程处理多个
  • 线程“main”中出现异常 java.lang.UnsatisfiedLinkError: ... \jzmq.dll: 找不到依赖库

    我有一个使用 ZMQ 的 java 应用程序 我已经能够在我的 Win7 PC 上运行它 我将 jzmq dll 放在 jar 可执行文件所在的同一文件夹中 然后通过命令 java jar myapp jar 运行它 我的下一步是将其移至服

随机推荐

  • 如何从 Visual Studio 2013 将现有解决方案添加到 GitHub

    我浏览了许多关于 VS 2013 中新的 Git 集成的网页 它们不涉及向 Github 添加现有解决方案 事实上 我找不到太多关于使用 GitHub 而不是 Visual Studio Online 的信息 谁能告诉我如何从现有解决方案开
  • 仅当内容超过两行时显示只读/隐藏按钮

    我正在创建一个评论部分 类似于 youtube 的东西 并且我希望能够在 content 有多行时显示阅读更多 隐藏按钮 这就是我到目前为止所做的 我的阅读更多 隐藏按钮可以工作 因为我添加了一个计算的线夹 使内容仅在存在多行时才显示两行
  • 在 VBA 中接收文件创建通知,无需轮询

    我正在编写一个与 ScanSnap 扫描仪集成的程序 ScanSnap 扫描仪不支持 TWAIN 扫描文档后 它会自动保存为 PDF 我想监视保存文件的目录 并在文件出现 并完成写入 时采取一些操作 一种简单的方法是使用 MS Access
  • 需要密码才能卸载/删除应用程序

    我想要求用户在被允许卸载 删除我的应用程序之前输入密码 我怎样才能实现这个功能 你可以通过以下方式做到这一点 第一次安装应用程序时 请安装单独的应用程序 包 观察程序 watcher 包含的唯一类是一个监听的 BroadcastReceiv
  • React Native 中未捕获的引用错误?

    我在 React Native 中遇到了未捕获的引用错误 为什么会这样 我能够成功构建 但捆绑程序显示此错误 我该如何解决它 注意 我使用的是Windows 10 截屏 包 json name rchampz version 0 0 1 p
  • GWT SafeHTML、XSS 和最佳实践

    OWASP 的优秀人员强调 您必须对 HTML 文档中要放入不受信任数据的部分 正文 属性 JavaScript CSS 或 URL 使用转义语法 看OWASP XSS https www owasp org index php XSS 2
  • Java webapp部署:爆炸还是不爆炸?

    一个非常简单的问题 我有一个 war 40MB 文件要在 JBoss 上运行 部署的最佳实践是什么 war 文件是否应该以分解格式部署 或不 我问是因为如果它爆炸了 那么我可以选择随时更新我的 属性文件 并且不需要每次更改属性文件时都进行新
  • 如何避免.NET DLL文件被反汇编? [复制]

    这个问题在这里已经有答案了 我正在编写一个 NET 应用程序 一个 Windows 类库 来实现我们产品的许可 问题是 DLL 可以很容易地被 MSIL 反汇编器或任何其他第三方工具反汇编 并且可以很容易地破解代码 我什至尝试过在程序集上签
  • 生成所有可能的排列(或 n 元组)

    我想创建一个包含 10 个变量 可以是 1 或 2 的所有可能排列的 data frame 2 2 2 2 2 2 2 2 2 2 1024 possible 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1
  • 列切换按钮不会触发回调操作

    在下面的JSFiddle https jsfiddle net asanchez4096 urd5gquc 每当选择列可见性按钮中选择列的按钮时 操作函数都不会触发 下面是我正在使用的代码 document ready function v
  • Windows 批处理:如何添加主机条目?

    我想使用此批处理脚本通过使用自动将新条目添加到我的主机文件中windows questions tagged windows batch 不幸的是 剧本只需在主机文件中添加一行 当我以管理员身份运行脚本时 又出了什么问题 echo off
  • 从 celery 工作人员到普罗米修斯的自定义指标

    我有一些 celery 工作人员在 kubernetes 下的容器中运行 它们不会由 celery 自动缩放 并且每个都在单个进程中运行 即没有多处理 我想从他们那里获取一堆不同的指标到普罗米修斯中 我研究过 celery promethe
  • 实时数据监控:PyQtGraph

    我正在开展一个项目 我必须分析来自设备的信号 我有一个正在运行的库 它可以从设备获取数据 截至目前 我正在收集数据 然后绘制它 我有兴趣构建一个可以实时绘制图表的实时数据监视器 经过搜索 我发现 PyQtGraph 非常适合这项任务 我对
  • 如何在 Flutter 中创建网络图像列表

    我使用 Carousel Pro 包在屏幕上实现轮播 在这个 Carousel 类中它需要一个图像列表 Carousel 类的语法是 Carousel images NetworkImage https cdn images 1 mediu
  • 如何在android中使用进度条填充图像

    我正在做一个项目 它需要填充图像 意味着我想使用图像形状作为进度条 我不知道如何使用自定义进度栏 这是一个图像及其图像按钮 这是进度为 100 时的情况 这是 0 进度 您需要了解可绘制资源 可绘制资源 安卓开发者 https develo
  • python 请求上传文件

    我正在访问一个网站 并且想要上传一个文件 我用Python编写了代码 import requests url http example com files file open 1 jpg rb r requests post url fil
  • 如何在SVG中实现橡皮擦功能?

    我认为 SVG 在某些功能上比 HTML5 canvas 更好 但我无法想象一种简单的方法来实现橡皮擦功能 我有什么方法或例子吗 这是一种非常笨拙的方法 但您可以简单地用白色描边模仿标准钢笔工具
  • 通过 Travis-CI 部署到 Heroku 的问题

    在使用 Heroku 部署时 我不断收到此错误 并且在通过 Travis 运行构建后尝试部署到 Heroku 时 我一直收到几个不同的报告 No stash entries found API request failed Message
  • 为什么添加多重处理会阻止 python 找到我编译的 c 程序?

    我目前正在寻求利用多处理的力量来加速我的代码 然而 当我从 python 调用编译后的代码时遇到了一些问题 因为当编译后的文件包含任何形式的多处理时 它似乎从代码的视图中消失了 例如 使用以下测试代码 include
  • Java 从我创建的另一个类访问数组元素

    我正在使用 main 方法在类中创建一个数组 Word attempts new Word 26 Word 类中的字段是 private String attempts Word 类中的构造函数是 public Word int a att