当前位置: 首页 > 知识库问答 >
问题:

访问说明符错误(找不到符号)

国言
2023-03-14
C:\Users\jaina_000\Desktop\learn_java\p1>javac Testp1.java
Testp1.java:6: error: cannot find symbol
                Protection ob = new Protection();
                ^
  symbol:   class Protection
  location: class Testp1
Testp1.java:6: error: cannot find symbol
                Protection ob = new Protection();
                                    ^
  symbol:   class Protection
  location: class Testp1
Testp1.java:7: error: cannot find symbol
                Derived ob1 = new Derived();
                ^
  symbol:   class Derived
  location: class Testp1
Testp1.java:7: error: cannot find symbol
                Derived ob1 = new Derived();
                                  ^
  symbol:   class Derived
  location: class Testp1
Testp1.java:8: error: cannot find symbol
                SamePackage ob2 = new SamePackage();
                ^
  symbol:   class SamePackage
  location: class Testp1
Testp1.java:8: error: cannot find symbol
                SamePackage ob2 = new SamePackage();
                                      ^
  symbol:   class SamePackage
  location: class Testp1
6 errors
package p1;
public class Testp1
    {
    public static void main(String a[])
        {
        Protection ob = new Protection();
        Derived ob1 = new Derived();
        SamePackage ob2 = new SamePackage();
        }
    }


package p1;

public class Protection
    {

    int n = 1;
    private int n_pri = 2;
    protected int n_pro = 3;
    public int n_pub = 4;

    public Protection()
        {
        System.out.println("Inside base constructor.");
        System.out.println(" n = "+n);
        System.out.println("n_pri = "+n_pri);
        System.out.println("n_pro = "+n_pro);
        System.out.println("n_pub = "+n_pub);
        }
    }


package p1;

class Derived extends Protection
    {
    Derived()
        {
        System.out.println("Inside Derived constructor.");
        System.out.println(" n = "+n);
    //  System.out.println("n_pri = "+n_pri);       
        System.out.println("n_pro = "+n_pro);
        System.out.println("n_pub = "+n_pub);
        }
    }


package p1;

class SamePackage{

    SamePackage(){
        Protection p = new Protection();
        System.out.println("Inside SamePackage constructor.");
        System.out.println(" n = "+p.n);                
    //  System.out.println("n_pri = "+p.n_pri);     
        System.out.println("n_pro = "+p.n_pro);
        System.out.println("n_pub = "+p.n_pub);
    }
}

共有1个答案

姜彬郁
2023-03-14

当你有包的时候,你不能像在类那样简单地编译或运行,因为它没有包。

编译时,需要导航到package文件夹的外部,然后使用命令javac[package]/[class]进行编译

javac p1/testp1.

运行时,请使用以下命令Java[package.class]。因此,在您的情况下,它应该是

Java P1.TestP1

确保您不在包内[p1]您应该在包外[通过cmd导航到learn_java文件夹后编译]。

最后,这是您的cmd看起来的样子

C:\Users\jaina_000\Desktop\learn_java>javac p1/Testp1.java

C:\Users\jaina_000\Desktop\learn_java>java p1.Testp1
Inside base constructor.
 n = 1
n_pri = 2
n_pro = 3
n_pub = 4
Inside base constructor.
 n = 1
n_pri = 2
n_pro = 3
n_pub = 4
Inside Derived constructor.
 n = 1
n_pro = 3
n_pub = 4
Inside base constructor.
 n = 1
n_pri = 2
n_pro = 3
n_pub = 4
Inside SamePackage constructor.
 n = 1
n_pro = 3
n_pub = 4
C:\Users\jaina_000\Desktop\learn_java>
 类似资料:
  • 这里有一个类似的答案:如何在Java中将函数作为参数传递? 但提供的正确答案不起作用。我有一门课: 在函数内部我试图将传递到,但我得到的错误是: 找不到符号 符号:类Callable 我不知道为什么。 另外,我尝试使用返回类型字符串作为xMethod,您能传递一个返回类型不同的函数吗?

  • 所以我在编译上面的代码时出现了明显的错误,但是错误是访问修饰符的非法组合,但是java文档http://docs.oracle.com/javase/tutorial/java/javao/accesscontrol.html说只有三个访问修饰符(public,private和protected),所以这些抽象的、最终的、public,private和protected是访问修饰符或访问说明符还是

  • 问题内容: 我使用时代码工作正常 吗?在我看来这很奇怪。 (错误显示在终端上) 问题答案: 这是 Arrays 类的静态方法。 您应该像这样调用它: 请注意,您仍然必须像这样导入Arrays类: 或者像其他人提到的那样,如果您进行静态导入,则可以省略类名。 我认为这样做对可读性更好。

  • (菜鸟失误,我确定。) 我是计算机科学专业的一年级学生,正在尝试用代码编写作业程序; 但是在编译时,我得到了错误; Lab10Ex1.java:10: 错误: 找不到符号 System.out.print(n 1);^ 符号:变量n 位置: 班级 Lab10Ex1 如果有人能向我解释我做错了什么,或者如何纠正它,我会非常感激。

  • 我有一个问题,我试图实现一个JMenuBar,但不断得到一个不能找到符号错误。我将JFrame与main方法一起放在一个单独的类中,JFrame将安装MainPanel类的一个对象。我在这里漏掉了什么?如有任何帮助将不胜感激,谢谢! 符号:方法setJMenuBar(JMenuBar) 位置:类主面板

  • 问题内容: 在Java中, 访问说明符 和 访问修饰符 是一回事吗? 问题答案: “访问修饰符”是Java语言规范中的正式术语,并在Java语言规范中使用。“访问说明符”在Java API文档中 同义使用,但这是我第一次注意到这一点。最好坚持使用JLS术语。