请问下面关于内部类代码哪里错误啊,明明跟视频中敲的一样

代码如下
package em;

package em;

public class test33 {
public static void main(String[] args) {
new A().f1();
}
}
class A{
private final String name = "a";
public void f1(){
class B{
private final String name = "b";
public void show(){
System.out.println(A.this.name);
}
}
B b = new B();
b.show();
}
}

报错信息如下
Exception in thread "main" java.lang.NoClassDefFoundError: em/A (wrong name: em/a)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:760)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at em.test33.main(test33.java:5)

进程已结束,退出代码1

你的结构写的不太对,帮你修订了一番:

package cn.bdqn.demo12;

public class Test {
    public static void main(String[] args) {
        new A().f1();
    }
}

class A {
    private final String name = "a";

    public void f1() {
        class B {
            private final String name = "b";

            public void show() {
                System.out.println(A.this.name);
            }
        }
        B b = new B();
        b.show();
    }
}

若有帮助,还请采纳,感谢!

两个package 么,删除一个

img