zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    python 迭代器&&生成器
    windows 10 扩大C盘空间
    robot framework 接口自动化测试和关键字开发
    Robot framework 环境搭建+图标处理
    Docker 安装-在centos7下安装Docker(二)
    win10系统rational rose 安装后打开弹框显示java.lang.ClassNotFoundException 解决方案
    mysql 关系表 分组读取的方法
    关于浮点型计算遇到的小问题
    dom 的介绍
    网站前端相关的知识点
  • 原文地址:https://www.cnblogs.com/InformationGod/p/8510425.html
Copyright © 2011-2022 走看看