加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中的多个类和main方法,以及包,命名空间

发布时间:2020-12-15 04:57:57 所属栏目:Java 来源:网络整理
导读:在 Eclipse中,.java文件名必须与类名相同.在任何情况下或仅在Eclipse中都是如此吗?对于main方法,它看起来像C中的main函数,但问题是,如果我有两个类都有自己的main方法并且可以将它们链接在一起怎么办?另外,我可以在一个.java文件中编写两个类吗?我在Windo
在 Eclipse中,.java文件名必须与类名相同.在任何情况下或仅在Eclipse中都是如此吗?对于main方法,它看起来像C中的main函数,但问题是,如果我有两个类都有自己的main方法并且可以将它们链接在一起怎么办?另外,我可以在一个.java文件中编写两个类吗?我在Windows中使用Eclipse,它是否与 Linux版本相同?

对于包,我的书告诉我包是一个目录.因此,要指定文件所属的包,我只需要说“package my_pack”吗?我是否需要创建一个像/ src / my_pack这样的目录并将我的.java文件放入其中?

第三,什么是命名空间?它与包和类的关系是什么?

解决方法

In Eclipse the .java file name must be the same as the class name. Is it true in any case or only for Eclipse?

java文件必须与包含的公共类具有相同的名称.

For the main method,it looks like the main function in C,but the question is,what if I have two classes both with their own main method and is it possible to link them together?

是的,你可以在同一个项目中有两个具有静态void main(String [] args){…}方法的类,但只有1个是你项目的主类,你应该决定哪一个是通过在清单文件中声明它.

阅读更多相关信息:

> Multiple classes in a single Java file,each with a main method – unexpected behavior?
> Specifying the Main class to run in a jar file from command line
> How to setup Main class in manifest file in jar produced by NetBeans project

In addition,can I write two classes in a single .java file?

是的,您可以,只要文件中只有一个类,该类的名称与文件名相同:

TheClass.java文件

package edu.home.bean;

public class TheClass {
    class SomeClass {
    }
}

class AnotherClass {
}

编辑:

如果未定义对类的公共访问权限,则可能具有默认或私有访问权限,具体取决于声明的位置.在上面的示例中,SomeClass将具有私有访问权限,并且只能由TheClass访问,而AnotherClass可以从同一个包中的任何类访问.这意味着,与edu.home.bean不同的包中的类无法访问AnotherClass.

package edu.home.control;

public class ControlClass {
    //this line compiles fine
    private TheClass x;
    //compilation error,it can't access for being in a different package
    private AnotherClass y;
    //compilation error,it can't access because its scope works only in TheClass
    private SomeClass z;
}

I’m using Eclipse in Windows,is it the same as the Linux version?

Java的优点是代码是独立于平台的(不像C或C),因此只要在操作系统中安装了Java虚拟机(JVM),就可以将代码从Windows移植到Linux而反之亦然.想要运行/开发Java项目.

For packages,my book tells me a package is sorta a directory. So to specify a package a file belongs to,do I just need to say “package my_pack”?

是的,这本书是对的.当您拥有Java项目(如MyFirstJavaProject)时,您可以在该文件夹中设置源文件夹和包.这些包将是源文件夹的子文件夹.一个例子:

Eclipse中的项目结构:

+ MyFirstJavaProject
  + src
    + edu.home.bean
    + edu.home.control
    + edu.home.gui
    + another.package


+ MyFirstJavaProject
  + src
    + edu
      + home
        + bean
          ... class files
        + control
          ... class files
        + gui
          ... class files
    + another
      + package

Do I need to create a directory like /src/my_pack and place my .java file in it?

您可以手动执行此操作,或者让您的IDE(在本例中为Eclipse)为您执行此操作,就像在包中创建包和类一样简单.

Third,what is a namespace? What’s its relationship with packages and classes?

Java不支持命名空间,而是使用包来促进类的管理/关系.您可以从另一个包(第一个表单)导入类,或使用具有完整包名的类(第二个表单).

第一种形式的例子:

package package1;

public class Package1Class {
}

package package2;

import package1.Package1Class;

public class Package2Class {
    private Package1Class x;

    public Package2Class (Package1Class x) {
        this.x = x
    }
}

第二种形式的例子:

package package1;

public class Package1Class {
}

package package2;

public class Package2Class {
    //look that there is not use of the import statement,however everytime you need
    //to call Package1Class,you should provide the full package name
    private package1.Package1Class x;

    public Package2Class (package1.Package1Class x) {
        this.x = x
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读