java 包概念和包之间的访问学习实录

对类文件进行分类管理,给类提供多层命名(名称)空间。写在程序文件的第一行。

类名的全称是 包名.类名。包也是一种封装形式。

 现在学习目录下建立一个testpack包,建立的方式如下图所示:

 

javac -d .   PackageDemo。java  这样学习目录下才会有一个包的目录产生,或者在学习目录下建立一个testpack的文件夹,然后再在这个文件夹里面去新建源文件。

java 包名.类名来执行class文件。

在c盘的建立一个testfolder文件夹用于存放运行将要被访问的包中的类。

在学习目录下新建一个源文件ForTestPack。java但是将其的类编译到testfolder文件夹中:

 

修改了一下ForTestPack的源代码:

package nicolas.pack;//定义一个名为nicolas。pack的包
class ForTestPack 
{
	
		ForTestPack()
	{
			System.out.println("ForTestPack is running");
	}
	
}


 

 

这样c盘就有了一个包目录了。在testpack包中的源文件PackageDemo中去访问nicolas。pack包中的ForTestPack类。

写了nicolas.pack.ForTestPack后进行编译仍旧发生编译错误:因为包不在当前目录下,所以找不到。要重新设置classpath,classpath中药包含被访问的包。

 

set classpath=c:\testfolder

//be careful of the ":" sign's use.

修改classpath后仍旧发生编译错误

 

因为包出现了,就出现了访问权限问题,权限不够,所以其他包无法访问包中的类。需将要被访问的类提升权限,用public关键字解决。

一旦一个类被public所修饰的话,那么这个源文件保存时的文件名必须和类名一致,否则会编译报错。

将ForTestPack共有化,然后重新编译一下这个源文件。

再次编译发现还是出错,原因是构造函数式私有的,不能公有化,所以将其注释掉,再写了一个公有的show函数,然后在PackageDemo中调用这个show函数,重新编译运行,成功截图如下所示:

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值