我想创建一个包含一些类的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'
答案 0 :(得分:5)
包中可以有多个public
类,但每个公共类都需要在自己的.java
文件中声明。如果您希望不同public
文件中的这些.java
类包含在同一个包中,只需将package mypack;
放在这些.java
文件的最开头即可。这是一个示例,您应该如何命名这些文件:
Box.java
:
package mypack;
public class Box {...}
Circle.java
:
package mypack;
public class Box {...}
请注意,文件名称应包含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
类(遵循上述规则)。但是,作为一种良好的做法,根据其相关性将您的课程分组到各种包中。