Java main方法调用内部类

本文探讨了在Java中从main方法调用内部类时出现的常见错误,并提供了正确的实现方式。强调了当内部类需要被静态上下文访问时,必须将其声明为静态内部类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刷OJ是遇到的怪异问题,想在main方法调用内部类,总是报错。

错误的代码

public class Out
{
	public static void main(string[] args)
	{
		Inner in=new Inner();//报错
	}
	class Inner
	{.......}
}


原因:main是static方法,内部类要定义为static才可以调用

可以通过这种方法:

public static void main(....)

{

Out out=new Out();

Inner in=out.new Inner();

}

在《Java核心技术》书中,P103,Employee类并不是内部类,而是一个java文件中定义了两个类。规定只能有一个类是public,或者全都不是publid

### Java 中 `main` 方法调用类实例化方法Java 编程语言中,`main` 方法是一个特殊的入口点,程序从这里开始执行。由于它是静态的 (`static`),可以直接通过类名调用来运行而无需创建对象。然而,当需要调用非静态(即实例化)方法时,则必须先创建该类的一个实例。 以下是关于如何从 `main` 方法调用实例化方法的具体解释以及示例: #### 创建实例并调用实例方法 为了调用一个类中的实例方法,首先需要使用 `new` 关键字对该类进行实例化。一旦有了这个对象引用,就可以利用它来访问任何非静态成员函数或属性。 下面给出一段具体的代码展示这一过程: ```java class ExampleClass { // 定义了一个简单的实例方法 public void displayMessage() { System.out.println("This is an instance method."); } } public class Main { public static void main(String[] args) { // 使用 new 运算符创建 ExampleClass 的新实例 ExampleClass exampleObject = new ExampleClass(); // 调用了上面定义好的实例方法 exampleObject.displayMessage(); } } ``` 上述例子展示了几个重要概念: - **ExampleClass**: 包含一个名为 `displayMessage()` 的公共实例方法[^1]。 - 在 `Main.main()` 函数内部,我们首先构建了 `ExampleClass` 的具体实体——`exampleObject`[^2]。 - 接着,借助刚刚建立起来的对象句柄(`exampleObject`)去触发那个预先设定好行为模式下的动作—打印消息到控制台[^3]。 值得注意的是,在这段演示片段里头,并不存在对于所谓 “父类引用指向子类实际形态” 场景的应用情况描述;如果涉及到继承体系结构的话,那么还需要额外考虑多态性和向上转型等相关知识点[^4]。 --- ### 总结 综上所述,要让 `main` 方法能够成功地触达目标类别底下那些基于个体存在的操作逻辑单元(也就是所谓的“实例方法”),就必然少不了经历如下两个必要环节: 1. 利用关键字 `new` 来生成相应类型的活生生的例子; 2. 借助所得出的结果作为桥梁进一步达成最终目的 — 即启动指定的功能模块运作流程。 这便是整个机制运转背后所遵循的核心原理所在之处! ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值