含有main的类应改为public,不要一味记忆书上的格式。理解才重要

解决方案 »

  1.   

    class Welcome
    {
       public String ch="welcome";
       void in()
       {
           System.out.println(ch);
       }
    }
    public class Hlo extends  Welcome
    {
        public static void main(String args[])
        {
            Welcome p = new Welcome();
            p.in();
        }
    }注意public的位置
      

  2.   

    对,就是这样。要把Hlo类声明为public。
    注意,要把文件名改为Hol.java
    good luck^_^
      

  3.   

    ------------------------------------------------------------------
    编写的原代码如下:
    public class Welcome
    {
       public String ch="welcome";
       void in()
       {
           System.out.println(ch);
       }
    }
    class Hlo extends  Welcome
    {
        public static void main(String args[])
        {
            Welcome p = new Welcome();
            p.in();
        }
    }
    提示出现错误信息:
    java.lang.NoSuchMethodError: main
    Exception in thread "main"请各位大虾指点迷经,并给出正确代码谢谢
    -------------------------------------------------------------“主要”是改成:
    public class Hlo extends  Welcome这样的形式。。但为什么你写的:public class Welcome是错的呢??
    原因是在JAVA中,public必须与main所在的类进行公开PUBLIC处理(关联),并且JAVA保存的*.java文件必须是public所在类的类名,比如你的类名为Hlo,则必须保存成Hlo.java文件。
    如果你这样写:
    public class Welcome
    {
       public String ch="welcome";
       void in()
       {
           System.out.println(ch);
       }
    }
    public class Hlo extends  Welcome
    {
        public static void main(String args[])
        {
            Welcome p = new Welcome();
            p.in();
        }
    }那么这个*.java文件保存的是Welcome.java呢,还是Hlo.java呢,肯定要出错的。。
    我也刚学JAVA不知道对不对,错误的话请高手指正。。
    --------------JavaXW (圣斗士-紫龙-庐山升龙霸) 
      

  4.   

    呵呵。来迟了他们已经说的很完整了,主要就是pubic的问题,以后要多注意这些细节啊
      

  5.   

    看了这个问题 虽然简单 可是我产生一个新问题  比如 我以下的写法
    class Welcome
    {
       private String ch="welcome";
       public void in()
       {
           System.out.println(ch);
       }
    }public class Hlo
    {
        public static void main(String args[])
        {
            Welcome p = new Welcome();
            p.in();
        }
    }我这个按照我平时的风格做了些改动 比如我在Welcome里把ch 变量改成private的 然后把in改成public的 而在Hlo我取消了继承关系  请问 原来的写法有什么好处?为什么要那样写 我一直一来都按我自己的写法写 不知哪个更好?
      

  6.   

    WoAiJavaWoAiCoffee() 的问题我来回复好了,
    其实我这个程序的本意是用来练习类继承的
    public static void main(String args[])
        {
            Welcome p = new Welcome();
            p.in();
        }
    代码的本意写法应该为
    public static void main(String args[])
        {
            Hlo p = new Hlo();
            p.in();
        }
    自然在对象的声明中要用到继承关系
      

  7.   

    支持楼主的贴子,我再补充回复一下 WoAiJavaWoAiCoffee() 的问题:
    -----------------------------------
    看了这个问题 虽然简单 可是我产生一个新问题  比如 我以下的写法
    class Welcome
    {
       private String ch="welcome";
       public void in()
       {
           System.out.println(ch);
       }
    }public class Hlo
    {
        public static void main(String args[])
        {
            Welcome p = new Welcome();
            p.in();
        }
    }我这个按照我平时的风格做了些改动 比如我在Welcome里把ch 变量改成private的 然后把in改成public的 而在Hlo我取消了继承关系  请问 原来的写法有什么好处?为什么要那样写 我一直一来都按我自己的写法写 不知哪个更好?
    -----------------------------------我直言:WoAiJavaWoAiCoffee() 兄肯定不太懂面向对象的设计,这点从private public的区别就能看出。我以前是搞DELPHI的,面向对象的设计都是通的private public的区别就是访问成员的作用域,即访问类的可见性如果你这样:
    class Welcome
    {
       private String ch="welcome";//那么ch引用肯定不能被他的引用所访问,因为是private
                                   //保护成员的,这个ch引用是在本类中进行数据处理的。
                                   //在设计DELPHI控件中是进行访类控件内部计算使用的变量
                     //通常设置成private的访问可视性证明此变量非常重要,
                     //不允许程序员进行改动,只允许程序进行设值
       public void in()//而这个public成员方法in就可以在该类的引用中进行访问,因为公
              //有可视性,public and private主要的区别就是创建了一个类的引用后
              //按下.后,会发现只有public可视性的成员或方法进行下拉显示(IDE中)
       {
           System.out.println(ch);
       }
    }public class Hlo
    {
        public static void main(String args[])
        {
            Welcome p = new Welcome();
            p.in();//在这里如果private String ch="welcome";设成
                   //public String ch="welcome";
                   //那么一些经验不足的程序员可能会改动ch的值,因为是public公开性,任何人
                   //都可以更改,如果刚学会JAVA的程序员在p.in();前面加上一句
            //p.ch="GoodBYE";后,我想你拿到客户进行演示时会遇到客户莫名其妙的表情
                   //怎么刚演示就googbye了呢?呵呵,很明显这样的软件销售量不好。
                   //
        }
    }
    晕,讲了一大堆,不知道对错,如果错了还请高手指正,我也刚学JAVA。。
    ------------------------ JavaXW(圣斗士-紫龙-庐山升龙霸)
      

  8.   

    I got it. thank you
      

  9.   

    在主类中加PUBLIC MAIN STATIC VOID MAIN
      

  10.   

    HOHO^^JavaXW(圣斗士-紫龙-庐山升龙霸)说的太好了
    既然这样那我就等WoAiJavaWoAiCoffee() 回复了在结帖吧,希望大家不要等急了^0^
      

  11.   

    to joHOHO^^JavaXW刚才没有看到你的回复 见谅 谢谢你的指正 但是我还有点疑问我在WELCOME 里把变量改成PRIVATE了就是为了保护这个变量不受改动 在Hlo里 应该没有办法改Welcome里的ch了吧 
    按照我的理解 如果不是全局变量 没必要吧变量设成公共的 设成保护或私有的就可以了