我也也是刚学,不对别拍我啊
我记得一个程序代码中只能有一个public类,是吗? 对
要继承那个类,用import不行吗?

解决方案 »

  1.   

    含有main的类需定义为public,且java文件名也为该类名
      

  2.   

    protected class Original 用protected在另一个包也可以继承
      

  3.   

    主类 就是 含有 main()方法的类必须定义为 public !其他的类如果要被继承的话,也要被定义为public!to :mingr6370(丑男) 程序代码中,可以含有多个public类,但含有 main()方法的类必须定义为 public 不过单个类最好保存在单独的文件中!可以用package。不过默认情况就是当前目录!
    小弟发表一下拙见,不对之处还请批评!
      

  4.   

    congcat(网破鱼欢) 
    在一个.java文件中可以含有多个public class?
    能给个例子吗?我记得只能有一个public class
    还有主类不加public也可以成功编译啊
    难道我理解错了,请教
      

  5.   

    一个JAVA文件中只能有一个显示的public class,且文件名与之相同;当然也可以不加public 修饰,那程序运行时会自动去找与文件名对应的那个类的main函数,每个class都可以有main函数
      

  6.   

    我用这个代码没有问题啊(没有用package p1;这个语句)这是结果:
    **** In same class,you can access ...
    friendly nmember 1
    private member 2
    protected member 3
    public member 4
    **** In subClass of same package,you can access member of this class ...
    friendly member 1
    protected member 3
    public member 4
    **** In subClass of same package,you can access member of superclass object ...
    friednly member 1
    protected member 3
    public member 4
    **** In the same package,you can access ...
    friendly member 1
    protected member 3
    public member 4
      

  7.   

    上面做的是把不同的类放在不同文件里做的,全部放在同一个文件里的话我只把AccessControl声明成public,  Original用default声明,也没有问题。因为所有的类都是在一个包里,所以不需要声明成public也可以被其他类继承。如果你还有其他包里的类要继承Original的话,可能只能把不同的类分到不同的文件里去了
      

  8.   

    开一下我为解决别人的问题而修改的代码,main()方法哪里都可以有,不一定要是声明为public,但是一个.java文件只能有一个public类(嵌套的不算)用来声明文件同名
    *
     * @(#)TestValuePass.java
     *
     * Copyright 2004 cfzq, Inc. All rights reserved.
     * @author      Fane
     * @version     1.0, 28/10/04
     * @since       JDK1.4.0
     */
    class Test
    {
    public Test()
    {
    } public StringBuffer s[];
    public static void main(String args[])
    {

    Test t = new Test();
    t.s = new StringBuffer[4];
    t.s[0] = new StringBuffer("1");
    t.s[1] = new StringBuffer("2");
    t.s[2] = new StringBuffer("3");
    t.s[3] = new StringBuffer("4");

    t.setArray();
    for (int i = 0; i < t.s.length; i++)
    {
    System.out.println(t.s[i]);
    }


    t.setArray(t.s[3]);
    System.out.println("#######################################################");
    System.out.println(t.s[3]);
    for (int i = 0; i < t.s.length; i++)
    {
    System.out.println(t.s[i]);
    }

    }

    public void setArray()
    {
    s[3] = new StringBuffer("5");
    }

    public void setArray(StringBuffer sb)
    {
    //s=null;
    sb = new StringBuffer("6");
    System.out.println("sb="+sb);
    //传递一个值
    /*if(this.sb==sb)
    System.out.println("this.sb have the same value of sb");
    if(this.sb.equals(sb))
    System.out.println("this.sb have the same addr with sb");
    */
    }
    }class Test1
    {
    public Test1()
    {
    }

    public StringBuffer s[];
    public static void main(String args[])
    {
    Test1 t = new Test1();
    t.s = new StringBuffer[4];
    t.s[0] = new StringBuffer("1");
    t.s[1] = new StringBuffer("2");
    t.s[2] = new StringBuffer("3");
    t.s[3] = new StringBuffer("4");

    t.setArray();
    for (int i = 0; i < t.s.length; i++)
    {
    System.out.println(t.s[i]);
    }

    t.setArray(t.s);
    System.out.println("#######################################################");
    System.out.println(t.s[3]);
    for (int i = 0; i < t.s.length; i++)
    {
    System.out.println(t.s[i]);
    }

    }

    public void setArray()
    {
    s[3] = new StringBuffer("5");
    }

    public void setArray(StringBuffer sb[])
    {
    //s=null;
    sb[3] = new StringBuffer("6");
    //传递一个地址
    System.out.println("sb="+sb);
    }
    }
      

  9.   

    mian()被声明为static,是一个静态的方法,可以理解为她不属于任何一个类
      

  10.   


    //AccessControl.javapackage p1;
    class Original{
    int n_friendly=1;
    private int   n_private=2;
    protected int n_protected=3;
        public int    n_public=4;
        void Access(){
    System.out.println("**** In same class,you can access ...");
    System.out.println("friendly nmember "+n_friendly);
    System.out.println("private member "+n_private);
    System.out.println("protected member "+n_protected);
    System.out.println("public member "+n_public);
    }
    }
    class Derived extends Original{
    void Access(){
    System.out.println("**** In subClass of same package,you can access member of this class ...");
    System.out.println("friendly member "+n_friendly);
    System.out.println("protected member "+n_protected);
    System.out.println("public member "+n_public);
    Original o=new Original();
    System.out.println("**** In subClass of same package,you can access member of superclass object ...");
    System.out.println("friednly member "+o.n_friendly);
    System.out.println("protected member "+o.n_protected);
    System.out.println("public member "+o.n_public);
    }
    }
    class SamePackage{
    void Access(){
    Original o=new Original();
    System.out.println("**** In the same package,you can access ...");
    System.out.println("friendly member "+o.n_friendly);
    System.out.println("protected member "+o.n_protected);
    System.out.println("public member "+o.n_public);
    }
    }public class AccessControl{
    public static void main(String args[]){
    Original o=new Original();
    o.Access();
    Derived  d=new Derived();
    d.Access();
    SamePackage s=new SamePackage();
    s.Access();
    }
    }
      

  11.   

    其实这个程序代码是我在学习过程中,从一本书上摘抄,然后编译的时候碰到的问题!
    现在我搞清了几个基本概念:
    一段程序中只能有一个public类,而且文件名必须与这个public类同名!书上的范例,在后面还构建了一个package p2,然后里面一个类要继承Original这个类!我想这个问题可能这样解决比较好,就是把Original这个public类单独再写在一个文件里面!然后,这个AccessControl类继承他就是了,而不能再一个文件中!
    您认为我这样理解对吗?  
      

  12.   

    to : FaneAnn(十年等待) 
    main()方法声明为static,称之为类方法,主类在执行的时候没有实例,可以从类方法作为程序执行的入口~
      

  13.   

    声明:由于小弟才疏学浅,导致了以下错误的言论!主类 就是 含有 main()方法的类必须定义为 public !其他的类如果要被继承的话,也要被定义为public!to :mingr6370(丑男) 程序代码中,可以含有多个public类,但含有 main()方法的类必须定义为 public 不过单个类最好保存在单独的文件中!可以用package。不过默认情况就是当前目录!
    小弟发表一下拙见,不对之处还请批评!______________________________________________________________________今天回头去看自己编译过的程序,一个文件都是一个public类的!
    由于回答问题的时候只是想当然!犯下如此低级的错误实在该罚!以后小弟有不对的地方还要大家批评指正呀!
      

  14.   

    含有 main()方法的类必须定义为 public?????????????你试过吗?其实非public类也可以有public static void main
      

  15.   

    一个文件只能有一个public类,且文件名必须与public类名同.public static void main可以在任何类中,不管是public,非public,内部类也可以,最好是有名字的,匿名内类也可以有public static void main,但引用时名字不定.
      

  16.   

    to : congcat(网破鱼欢) 主类 就是 含有 main()方法的类必须定义为 public !你好像理解错了吧?