A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冷漠无天 中级黑马   /  2013-12-5 09:06  /  2306 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

自定义的两个java包互相不能访问,甚至同一个包中的java文件相互之间也不能调用
是咋回事?求指导

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
狼王 + 1 + 3 等大神。。

查看全部评分

8 个回复

倒序浏览
大神来啊  帮帮忙!
回复 使用道具 举报
第一:不同包之间的类的引用要用import 引入;
第二:相同包之间的方法的引用,要注意方法的修饰符:
        1.public 可以被任何类访问   
        2.protected 可以被同一包中的所有类访问 可以被所有子类访问 子类没有在同一包中也可以访问
        3.private  只能够被当前类的方法访问   
        4.缺省(无访问修饰符) 可以被同一包中的所有类访问  如果子类没有在同一个包中,也不能访问
希望这些对LZ有所帮助。

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
狼王 + 1 + 3 赞一个!

查看全部评分

回复 使用道具 举报
不通包同一路径可以import但是不同包不同路径怎么调用呢?
回复 使用道具 举报
不同目录下包的访问,需要在系统环境变量classpath中指出所用的包的目录,这时就可以配置虚拟环境变量,如有三个包分别在D:\、E:\、F:\这三个盘的根目录下,D:\下的包中为含有main方法的类,
在命令行提示符窗口输入命令 set classpath=%classpath%;D:\;E:\;F:\;
编译时,可以把class文件放在一个目录下,如在D:\创建一个文件夹classes,编译:在D:\下 javac 主类包含目录的全名称
运行:进入到classes目录,java 包名.类名

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
狼王 + 1 + 3 赞一个!

查看全部评分

回复 使用道具 举报
冷漠无天 发表于 2013-12-5 09:28
不通包同一路径可以import但是不同包不同路径怎么调用呢?

不知道LZ是不是写的“com.itheima.*”之类的包名,这样只能import星号那一级的类,如果下面还有一级类似于“com.itheima.test”这样的包,使用这些包中的类就还要import com.itheima.test.*。
上面的写法效率较低,实际开发中是用哪个类就import哪个类。
回复 使用道具 举报
示例代码:采用昨天“那些人之一”问题中的代码
D:\中,
  1. package pack;
  2. import mydemo.*;
  3. class Packagedemo
  4. {
  5. public static void main(String[] args)
  6. {
  7. mydemo.DemoA d=new mydemo.DemoA();
  8. d.show();
  9. packo.Demo b= new packo.Demo();
  10. b.method();
  11. System.out.println("Hello Package!");
  12. }
  13. }
复制代码



E:\中
  1. package mydemo;
  2. public class DemoA extends packo.Demo
  3. {
  4. public void show()
  5. {
  6. method();
  7. System.out.println("DemoA show run");
  8. }
  9. }
复制代码


F:\中
  1. package packo;
  2. public class Demo
  3. {
  4. public /*protected 保护*/ void method()
  5. {
  6. System.out.println("Demo method run");
  7. }
  8. }
复制代码


编译运行:

QQ截图20131205095352.png (27.37 KB, 下载次数: 48)

QQ截图20131205095352.png
回复 使用道具 举报
建议贴源码
回复 使用道具 举报
如问题已解决请楼主设置分类为提问结束,如果没有解决请楼主详细说明问题
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马