我刚学习java 如何在一个包中创建两个类?

packagetest;publicclasscircle{intx=7,y=8;publicvoidoutput(){System.out.println(x+""+y... package test;
public class circle
{
int x=7,y=8;
public void output()
{
System.out.println(x+" "+y);
}
}
class cross
{
int a=4,b=6;
public void output1()
{
System.out.println("a="+a+" "+"b="+b);
}
}

这样的一个包,我为什么不能调用cross这个类 ? 怎么样才能使其正常调用
展开
 我来答
xiaomayanqi
2012-04-07
知道答主
回答量:15
采纳率:0%
帮助的人:2.2万
展开全部
你说的是java内部类的概念。好好去百度一下什么叫java内部类。内部类一般来说主要的作用是在类的内部创建一个嵌套类,并且该类一般是私有的。这样只有自己本身可以调用这个嵌套类里的方法。
你的代码如果要写的话如下:
public class circle
{
int x=7,y=8;
public void output()
{
System.out.println(x+" "+y);
cr.output1();
}

cross cr = new cross();
public static void main(String[] args) {
circle circle = new circle();
circle.output();
}

public class cross{
int a=4,b=6;
public void output1()
{
System.out.println("a="+a+" "+"b="+b);
}
}
}
频问贝5jpM
2012-04-06 · TA获得超过427个赞
知道小有建树答主
回答量:169
采纳率:0%
帮助的人:103万
展开全部
如果你想在circle中调用cross这个类,就必须声明cross类的对象 cross c = new cross();
这样,你想用cross这个类中的东西就可以了,比如想调用output1()这个方法,就可以写成
c.output1();这样就可以了
追问
这样写是没问题,但是用的时候比如这样
import test.*;
public class maintain
{
public static void main(String[] args)
{
circle a=new circle();
a.output();
cross b=new cross();
b.output1();
}
}
编译时就会出错
追答
在同一个类文件当中,只能存在一个public修饰的类,即public class circle,而你的class cross,默认的访问权限是default,是只有在同一个包下才可以访问,你的maintain类很明显不是和它同包,自然就不能编译成功。如果你想让所有的类中都可以使用cross类,那你就不能在circle类文件下定义这个类,而是要单独的建一个。

package test;
public class circle...
package test;
public class cross...
package abc;
public maintain...
三个类,三个文件,前两个同在一个包下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shikenian520
2012-04-07 · 超过10用户采纳过TA的回答
知道答主
回答量:46
采纳率:0%
帮助的人:18.6万
展开全部
你的包中已经有两个类啦,我刚刚编译了了一下,没问题啊。如果你想调用这个包中的类的话,需要在别的类中加入语句 inport test.cross; 当然,如果你要在你的当前包中引用该类的话,则不需要这个语句了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天方之夜谭
2012-04-07 · TA获得超过587个赞
知道小有建树答主
回答量:223
采纳率:100%
帮助的人:207万
展开全部
把cross这个类单独写到一个文件中,声明为public,否则在包的外部是不可见的!
更多追问追答
追问
我的意思就是说能不能把cross这个类加入进test这个包中? 如果能 怎么包含?
追答
很容易,你如果是用的eclipse的话就是选中test这个包新建一个class cross ,自动就会加入到相应的包中。如果没使用ide,而是记事本的话就找到你的cricle.java这个文件所在的目录,新建一个cross.java文件,文件里面的内容要有package test; cross 类要声明为public class cross就可以了。编译的时候直接在这个包内使用命令 javac *.java 就能全部编译了。如果是在linux下最好是逐个编译,使用javac *.java有时候可能会出错。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhunxunziyou
2012-04-07
知道答主
回答量:26
采纳率:0%
帮助的人:6.9万
展开全部
java是面向对象的,要调用类必须要先得到这个的对象或其对象的一个引用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式