Java:如何从主方法调用非静态方法?
正在学习Java,现在遇到以下问题:我将main方法声明为
public static void main(String[] args) {..... }
在我的主要方法中,因为它是静态的,所以只能调用其他静态方法!!!为什么呢
例如:我有另一堂课
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.executeBatchInsert
,上下文不够。
了解这一点非常重要:
- 实例方法(和字段等)与特定实例有关
- 静态方法和字段与类型本身相关,而不是特定实例
一旦理解了根本的区别,就可以在不创建实例的情况下调用实例方法。例如,问“ 那个人的身高是多少?” 就很有意义。(对于特定的人),但问“人的身高是多少?”没有道理。(未指定人员)。
假设你是从书本或教程中学习Java,则应阅读更多有关静态和非静态方法等的示例-这是理解的重要区别,在理解之前,你将遇到各种问题。
以上是 Java:如何从主方法调用非静态方法? 的全部内容, 来源链接: utcz.com/qa/416812.html