像Class,Package,InetAddress这样的包,都没有构造方法,里面的方法有些是静态的,有些是非静态的,那些非静态的方法不能在main方法中用 Package.xxx();  这样的形式调用,我又专门写了个类 ,输出其中某些方法的值,在主方法的实例化候调用方法还是不行,不过有一种方法,往方法中添加参数好像可以,我现在真的被这种没有构造函数的类搞蒙了,请大家帮帮忙,谢谢了!!:
public class PackageTest
{
public static void nameOfClass(Class cc)
{
System.out.println(cc.getName());
}

public static void main(String[] args)
{
PackageTest.nameOfClass(PackageTest.class);
}
}以前写过的代码不过,像这样的包还真没怎么用过,有一个Math包用过,不过里面都是静态的方法,所以一直都没有发觉,现在想把JDK中的类给熟悉一下!!!

解决方案 »

  1.   

    你的理解是错误的,如果一个类没有显示声明构造方法,程序会自动生成一个无惨的构造方法
    构造方法跟静态方法的调用没关系
    可以通过类.方法名,类.变量名调用静态的方法和变量
    http://www.talentdigger.cn/home/space.php?uid=5328&do=blog&id=23360类.方法名 不是 包.方法名
      

  2.   

    类都有一个无参的构造方法的。那些不能new 类名()的里面都用private 类名()给设为外部不能new无参构造方法了。但有的会提供 getInstance()方法来返回唯一实例,有的会提供有参的构造函数,有的就是一堆静态方法不需要初始化类实例直接类名.静态方法名。
      

  3.   

    楼上说的这些我都知道,也不知道是不是我钻牛角尖了,反正这些方法我就没几个用得出来的 ,我写的那个Package.xxx前面那个Package就是java.lang.Package类啊,而且也不能用Package p = new Package();实例化出来,提示构造方法Package()找不到符号,下面这两种都不行,就是把
    System.out.pritnln(Package.getSpecificationTitle() );放到别的类的方法里,再到main()函数中实例化那个类,也是提示没法引用非静态方法,除了这些方法,我真还想不出还有别的方法可以调用一个java方法了。public class Test1
    {
    public static void main(String[] args)
    {
    System.out.pritnln(Package.getSpecificationTitle() );

    }
    }public class Test2
    {
    public static void main(String[] args)
    {
    Package p = new Package();

    }
    }
    这两种方法都不行,就算放在外面的类,再进来实例化类,调用方法也不行!!!
      

  4.   

    反正java.lang.Package这个类是个public类,而且也没什么getInstance()的方法,我真快被这个类给搞疯了,明明看着如此简单的几句代码,写过来改过去就是没有用,哎,好菜!!
      

  5.   


    public static Package getPackage(String name) 
              通过调用方的 ClassLoader 实例中的名称找到一个包 
    参数:
    name - 包名称,例如,java.lang你可以通过这个静态函数,传入一个字符串参数,获取一个Package实例,然后调用它的public非静态方法
      

  6.   

    还有一个静态方法public static Package[] getPackages()获得调用方的 ClassLoader 实例当前已知的所有包