gpt4 book ai didi

Java:如何从主方法调用非静态方法?

转载 作者:IT老高 更新时间:2023-10-28 20:52:46 26 4
gpt4 key购买 nike

我正在学习 java,现在我遇到了以下问题:我将 main 方法声明为

public static void main(String[] args) {

..... }

在我的主要方法中,因为它是静态的,我只能调用其他静态方法!!!为什么?

例如:我有另一个类(class)

 public class ReportHandler {       
private Connection conn;
private PreparedStatement prep;
public void executeBatchInsert() { ....
} }

所以在我的主类中我声明了一个 private ReportHandler rh = new ReportHandler();

但是如果它们不是静态的,我就不能调用任何方法。

这哪里出错了?

编辑:抱歉,我的问题是:如何“设计”应用程序以允许我从“起点”(static void main)调用其他类。

最佳答案

您只需要创建一个 ReportHandler 的实例:

ReportHandler rh = new ReportHandler(/* constructor args here */);
rh.executeBatchInsert(); // Having fixed name to follow conventions

实例方法的重点在于它们是特定于类的特定实例...所以您需要先创建一个实例。这样,实例将可以在您的情况下访问正确的连接和准备好的语句。只是调用ReportHandler.executeBatchInsertcontext不够用。

理解这一点非常重要:

  • 实例方法(和字段等)与特定实例相关
  • 静态方法和字段与类型本身有关,不是特定实例

一旦你理解了根本的区别,你就不能在不创建实例的情况下调用实例方法......例如,问“的高度是多少 人?” (对于特定的人)但问“人的高度是多少?”是没有意义的。 (不指定人)。

假设您从一本书或教程中学习 Java,您应该阅读更多关于静态和非静态方法等的示例 - 这是理解的一个重要区别,您将拥有各种问题,直到你弄明白为止。

关于Java:如何从主方法调用非静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7379915/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com