源码如下:
package testjava.cn;
 class student {
  private String name;
          int number;
  protected int age;
   protected student (String name,int        number,int age) {
   this.name = name;
   this.number = number;
   this.age = age;
   }
    default  void Info() {
      System.out.println("姓名:"+"学号:"+"年龄:");
     }
 } 
 public class Scholl {
  public static void main(String args[]) {
   student t = new student("tom",123,18);
   t.Info();
  } 
}    为什么在Info方法里我使用default控制符显示出错,而改用public后又好了,default的权限不是包权限么,而且这个方法也是成员发法啊。PS:我改用public进行编译没问题,可是运行却出错提示:找不到或无法加载主类。

解决方案 »

  1.   

    对于类的成员变量和方法可以有4中访问权限:public、protecter、default、private.其中默认的,也称为default或者package,不适用任何修饰符。
      

  2.   

    默认的,也称为default或者package,不使用任何修饰符。
    找不到或无法加载主类,可能是你的类名和文件名不一致,即含有main函数的类的类名一定要和文件名一样。
      

  3.   

    含main方法的类名和文件名是一样的,可还是出现无法加载主类
      

  4.   

    修饰字的区别
    java程序中,访问修饰符可以出项在类、成员变量、构造方法或方法前面,是用来控制访问权限的修饰符。java语言中提供了4种形式的访问修饰符:
    1.public     java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包访问。
    2.private    java语言中队访问权限限制最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象,其子类不能访问,更不允许跨包访问。
    3.protect    java语言中介于public和private之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法以及子类访问。即使子类在不同的包中也可以访问。
    4.(default)即不加任何访问修饰符,通常称为“默认访问模式”。该模式下,只允许在同一个包中进行访问。
      

  5.   

    你的构造函数也就是 protected student(){}有问题,改成public就好了,具体自己百度下
      

  6.   

    默认的,也称为default或者package,不使用任何修饰符。
    找不到或无法加载主类,可能是你的类名和文件名不一致,即含有main函数的类的类名一定要和文件名一样。
    这个代码我调试过了的,改成public执行通过了的
      

  7.   

    构造方法我改成了public可还是出现了这样的错误。
      

  8.   

    就把default删除了  程序就能正常运行了  输出结构是:姓名:学号:年龄:
      

  9.   

    default这个keyword 目前只能作为 switch 的分支出现。