【问题标题】:Passing an object as parameter to a method (Java)将对象作为参数传递给方法(Java)
【发布时间】:2015-11-28 04:07:50
【问题描述】:

Main File

My class

我遇到的问题是,当我尝试编译所有程序时,它告诉我它无法在我的主文件的第 17 行找到所有变量。

我必须将对象传递给printmovieinfo 方法。

【问题讨论】:

  • 更多问题请不要提供图片,只提供有问题的代码
  • 这样的小代码示例可以作为问题的一部分发布。请不要将您的代码发布为 .png 文件的链接。 StackOverflow 的目的之一是维护一个可以在未来长期使用的问答数据库,并且发布指向临时 URL 的链接违背了该目的。

标签: java class object methods javac


【解决方案1】:

您的printMovie 方法采用名为citizenkaneMovie 参数(这是一个坏名字,因为该方法应该可以用于任何电影,而不仅仅是那部电影)。要获取标题和其他信息,您需要告诉程序它将从citizenkane 获取信息。它不会读懂你的想法。

问题在于,在Movie 类中,您提供了设置该信息的方法,但没有提供获取信息的方法。除了set 方法之外,您还需要get 方法来获取信息,例如:

public String getTitle() {
    return title;
}

然后,如果你有一个名为m 的电影对象,你可以使用m.getTitle() 来获取标题。 m.title 不起作用,因为Movie 中的title 字段是private,这意味着它对任何其他类都不可见。将此语法与您的 citizenkane 参数一起使用以检索标题和其他信息。

【讨论】:

    【解决方案2】:

    在您的 Movie 类中编写“get”方法。这些只是返回您的私有变量的简单函数。然后在您的主类中使用citizenkane.getTitle() 等访问它们。

    【讨论】:

      【解决方案3】:

      printMovieInfo() 中使用引用citizenkane,但请注意您的类Movie 中的所有变量都是private,因此您无法在printMovieInfo() 中访问它们。所以要么将它们设为public,要么为它们提供公共吸气剂并在printMovieInfo() 中使用它们

      【讨论】:

      • 嗯,这些不是private 字段吗?
      猜你喜欢
      • 1970-01-01
      • 2019-01-02
      • 2022-01-22
      • 2015-11-22
      • 2019-11-27
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多