鱼C论坛

 找回密码
 立即注册
查看: 761|回复: 3

[已解决]Java学习问题-求助!

[复制链接]
发表于 2023-5-10 19:47:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
学习内部类的时候遇到这个情况,我debug会跳入SecureClassLoader,里面的代码我也看不懂
屏幕截图 2023-05-10 194142.png

代码如下
public class homeWork07 {
    public static void main(String[] args) {
        Car car1 = new Car(41);
        car1.getair().flow();


    }
}

class Car {
    private double tem;

    public Car(double tem){
        this.tem = tem;

    }
    public air getair(){
        return new air();
    }


    public class air {
        public void flow() {
            if (tem > 40) {
                System.out.println("吹冷风");
            } else if (tem < 0) {
                System.out.println("吹热风");
            } else {
                System.out.println("空调关闭");
            }
        }
    }
}

最佳答案
2023-5-10 19:56:57
liuhuiqin 发表于 2023-5-10 19:50
所以并不是我写的代码的问题吧?

从你提供的代码来看,它看起来是正确的。这个异常  java.lang.NoClassDefFoundError  通常是因为 Java 虚拟机在运行时找不到定义的类。错误信息 "wrong name:com/chat10ex/Car" 提示可能是你的类的包结构或者类的名称有问题。

你的类  Car  和  homeWork07  是否在正确的包内?根据错误信息,Java 虚拟机期望  Car  类在  com.chat10ex  包中。你需要确认你的代码的包结构是否正确, Car  类是否在  com.chat10ex  包中,并且你的  homeWork07  是否也在同一个包下。

此外,检查一下你的类名和文件名是否一致,因为在 Java 中,公共类的名称必须与文件名相同。例如,如果你的  Car  类是公共类,那么它应该在名为  Car.java  的文件中。

你也需要确认你的类路径是否正确。类路径是 JVM 和 Java 应用程序用来查找类的位置的一种环境变量。如果类路径设置不正确,那么 JVM 可能无法找到你的类。

总的来说,这个问题可能与你的代码无关,更可能是与你的项目配置和环境设置有关。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-10 19:47:47 | 显示全部楼层
在Java中,内部类是定义在另一个类中的类。这里的 air 类就是 Car 类的一个内部类。在 main 方法中,我们创建了一个 Car 对象 car1 ,并调用它的 getair 方法获取一个 air 对象,接着调用 air 对象的 flow 方法。在 flow 方法中,根据 tem 的值进行不同的处理,输出不同的结果。如果 tem 大于40,则输出“吹冷风”,如果小于0,则输出“吹热风”,否则输出“空调关闭”。

至于你提到的跳入 SecureClassLoader 的问题,这可能是因为你使用了某些库或框架,导致程序进入了这个类加载器。不过,这并不影响你对代码的理解和学习。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-10 19:50:02 | 显示全部楼层
isdkz 发表于 2023-5-10 19:47
在Java中,内部类是定义在另一个类中的类。这里的 air 类就是 Car 类的一个内部类。在 main 方法中,我们创 ...

所以并不是我写的代码的问题吧?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-10 19:56:57 | 显示全部楼层    本楼为最佳答案   
liuhuiqin 发表于 2023-5-10 19:50
所以并不是我写的代码的问题吧?

从你提供的代码来看,它看起来是正确的。这个异常  java.lang.NoClassDefFoundError  通常是因为 Java 虚拟机在运行时找不到定义的类。错误信息 "wrong name:com/chat10ex/Car" 提示可能是你的类的包结构或者类的名称有问题。

你的类  Car  和  homeWork07  是否在正确的包内?根据错误信息,Java 虚拟机期望  Car  类在  com.chat10ex  包中。你需要确认你的代码的包结构是否正确, Car  类是否在  com.chat10ex  包中,并且你的  homeWork07  是否也在同一个包下。

此外,检查一下你的类名和文件名是否一致,因为在 Java 中,公共类的名称必须与文件名相同。例如,如果你的  Car  类是公共类,那么它应该在名为  Car.java  的文件中。

你也需要确认你的类路径是否正确。类路径是 JVM 和 Java 应用程序用来查找类的位置的一种环境变量。如果类路径设置不正确,那么 JVM 可能无法找到你的类。

总的来说,这个问题可能与你的代码无关,更可能是与你的项目配置和环境设置有关。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 05:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表