• Eclipse的一个“bug”


      标题之所以打上双引号,是因为暂时不知道怎么确定。

      一个 .java文件里有两个类:public Bath;Soap。它们都有一个main()方法。

      从命令行单独访问任意一个类的main()方法,都没毛病;从Eclipse里访问,也没毛病。

      但是,如果public类(Bath)没有了public main()。在命令行访问非public的Soap的main()方法是没有毛病的,在Eclipse里却无法访问。

      (《Java编程思想》这本书的确写的有一定的质量,但是表述逻辑太混乱了,而且存在很多的有毛病的地方)

     1 package a2.package1.inheritance;
     2 
     3 /**
     4  * <ol>
     5  * <li>覆盖:方法签名必须与父类相同,实现应该不同;返回值、访问权限可变
     6  * <li>访问权限只能拓宽,不能窄化
     7  * </ol>
     8  * @author LSH
     9  *
    10  */
    11 public class Detergent extends Cleanser{
    12     
    13     @Override
    14     void scrub(){
    15         append(" Detergent.scrub()");
    16         /*父类同名方法什么时候要调用,什么时候不需要调用?*/
    17         super.scrub();
    18     }
    19     
    20     public void foam(){ append(" foam()"); }
    21     
    22     public static void main(String[] args) {
    23         Detergent x = new Detergent();
    24         x.dilute();
    25         x.apply();
    26         x.scrub();
    27         x.foam();
    28         System.out.println(x);
    29         System.out.println("测试父类:");
    30         /*此处直接调用main方法*/
    31         Cleanser.main(args);
    32     }
    33 
    34 }
    35 
    36 class Cleanser{
    37     private String s = "Cleanser";
    38     public void append(String a){s += a;}
    39     public void dilute(){ append(" dilute()"); }
    40     public void apply(){ append(" apply()"); }
    41      void scrub(){ append(" scrub()"); }
    42     public String toString(){return s;}
    43     
    44     /**
    45      * <span>
    46      * 只有同文件内的公共类Detergent有main方法时,
    47      * 该类的main方法才能被调用;
    48      * Detergent没有main方法时,从命令行能调用该类的main方法。
    49      * 或许,这就是Eclipse存在的一个“bug”
    50      * </span>
    51      * @param args 参数
    52      */
    53     public static void main(String[] args) {
    54         Cleanser x = new Cleanser();
    55         x.dilute();
    56         x.apply();
    57         x.scrub();
    58         System.out.println(x);
    59     }
    60 }
    View Code
  • 相关阅读:
    win server 2012 服务器不能ping通
    Linux系统的文件目录结构
    怎样理解和识别 Linux 中的文件类型
    Linux(Centos 7)下安装Git并配置连接GitHub
    centos 7 下升级自带 sqlite3
    Pycharm项目上传到Github
    计算机存储单位:bit, Byte, KB, MB, GB, TB, PB, EB, ZB, BB
    ubuntu 删除命令
    influxDB 各个历史版本号,时间截止2020年9月27日
    使用Github做一个完全免费的个人网站
  • 原文地址:https://www.cnblogs.com/InformationGod/p/8510425.html
Copyright © 2020-2023  润新知