zoukankan      html  css  js  c++  java
  • 你所不知道的java编程思想

    读thinking in java这本书的时候,有这么一句话“在编译单元的内部,可以有一个公共(public)类,它必须拥有与文件相同的名字”

    有以下疑问:

    1. 在一个类中说可以有一个public类,那是不是也就是说可以没有呢?

    抱着这个问题进行了以下的实验:(文件名是Test1.java)

    class Test1 {
        public static void main(String[] args){
            if(args != null && args.length > 0){                                                        
                System.out.println(args.length);
                for(int i=0;i < args.length;i++){
                    System.out.println("args["+i+"]:"+args[i]);
                }   
            }   
        }   
        public static void test(){
        }   
    }
    class Test3{
        public static void main(String[] args){
            if(args != null && args.length > 0){ 
                System.out.println(args.length);
                for(int i=0;i < args.length;i++){
                    System.out.println("args["+i+"]:"+args[i]);
                }   
            }   
        }   
        public static void test(){
        }   
    }

    在终端下执行命令,没有任何错误,可见第一条确实可行的,一个类文件中确实不需要有public指定相关类名。

    那随之而来的第二个问题就是,既然没有public修饰,那是不是里边的类名称也可以随意起呢,随之修改上述代码中Test1为Test2并进行测试,结果如下:

    同样和上图的结果几乎一样,所以可以得出结论,在一个类文件中可以没有public修饰的类,此时类名称不必和文件名一样。

    通过以上研究就可以明显看出来《thinking in java》中的一个错误,原话如下:

    “例如,假定文件名是MyClass.java。它意味着在那个文件有一个、而且只能有一个public类。而且那个类的名字必须是MyClass(包括大小写形式)”

    ——取自5.1节

    延伸了解:

    以下列出类名的修饰符(取自百度)

    public     公共类
    default    默认类(默认的修饰符,只有在相同包中的对象才能使用这样的类)
    abstract   抽象类 
    final      不能被继承的类 
    static     静态类 
    private    只能修饰内部类,一般不推荐使用
    

      

  • 相关阅读:
    codeforces628D. Magic Numbers (数位dp)
    hdu5432Rikka with Array (数位dp+十进制转化为二进制)
    LA3902 Network (树上dfs)
    zoj3494 BCD Code(AC自动机+数位dp)
    codeforces #345 (Div. 1) D. Zip-line (线段树+最长上升子序列)
    zjnu1786 PROSJEK(二分)
    九度1497:面积最大的全1子矩阵 (单调队列,单调栈)
    zjnu1726 STOGOVI (lca)
    zjnu1735BOB (单调队列,单调栈)
    uva10859 Placing Lampposts (树形dp+求两者最小值方法)
  • 原文地址:https://www.cnblogs.com/everyday0error/p/5568449.html
Copyright © 2011-2022 走看看