我可以在java包中定义多个公共类

时间:2018-02-13 10:36:01

标签: java class packages public

我想创建一个包含一些类的java包。但是不能从包外面访问非公共类,所以我写这个代码保存为Box.java

package mypack;
public class Box
{
int length,breadth,height;
public Box(int l,int b,int h)
    {
    length=l;
    breadth=b;
    height=h;
    }
public  int vol()
    {
    return length*breadth*height;
    }
} 

public class circle
{
 int r;
 public circle(int rr)
    {
    r=rr;
    }
 public float area()
    {
    return (3.14f*r*r);
    }
 }  

是否可以创建这样的包。如果可能的话我应该给它什么文件名' Box.java'或者' circle.java'

2 个答案:

答案 0 :(得分:5)

包中可以有多个public类,但每个公共类都需要在自己的.java文件中声明。如果您希望不同public文件中的这些.java类包含在同一个包中,只需将package mypack;放在这些.java文件的最开头即可。这是一个示例,您应该如何命名这些文件:

  1. Box.java

    package mypack;
    public class Box {...}
    
  2. Circle.java

    package mypack;
    public class Box {...}
    
  3. 请注意,文件名称应包含public类名称(如果里面有public类)。

    顺便说一下,要注意Java语言中的命名约定 - 在查看代码时可能会节省你和其他人的时间 - 类名应该以大写字母开头,所以在你的情况下它应该是{{1} } class和Circle,而不是Circle.java class和circle

答案 1 :(得分:0)

您只能在源文件中创建一个public类型(如类/接口等),如下面Java文档中所述(重点是我的)。

  

要创建包,请选择包的名称(命名   惯例将在下一节讨论)并提出一个包   在包含的每个源文件的顶部具有该名称的语句   类型(类,接口,枚举和注释类型)   您想要包含在包中。   如果您将多个类型放在一个源文件中,则只能有一个   public,它必须与源文件同名

我建议您阅读here,了解如何在java中创建和管理包和源/类文件。

另请注意,您可以在单个源文件中包含多个非公开(默认访问)类型,如下所示:

在Circle.java文件中:

package mypack;

class Box { //non-public (default) class
 //code for Box class
} 

public class Circle {//public class
  //code for circle class
} 

此外,在包中,您可以创建任意数量的public类(遵循上述规则)。但是,作为一种良好的做法,根据其相关性将您的课程分组到各种包中。