Java笔记(学习一下Eclipse中的包、文件、命名空间的问题) 边走边聊

小汪汪,今天我们学习一下Java开发中经常让人感觉头大的包、文件、以及命名空间的问题呀!然后再加一题算法题呀!

参考的内容来自:

关于包、文件、命名空间:http://yqgao.blog.51cto.com/773490/157061/

关于算法的题目:http://blog.csdn.net/v_july_v/article/details/6543438(这个里面的微软面试100题是我们这个暑假的目标哦)


先来学一下那个关于包、文件、命名空间的东东吧,这个东西的规则方面的内容在上面提到的那个网址中有详细的描述,这里感觉没必要再去提炼了,小汪汪,先把那个网址中的内容仔细的学习一下哦;这里就只以一个项目为例子来说明那些规则呀,这样加深一下理解,并且可以达到实际应用的效果:

首先思考一下下面的几个问题:

1、为什么Java要有包的概念?这跟C++有什么相同的和不同的地方?

      C++使用的是命名空间,使用不同的命名空间,可以防止相同的命名(如函数名,类名,变量名发生冲突),比如C++中的STL,

     我们一般会使用如下的声明:

     using namespace std; 或者:

     using std::end;

     using std::cout;

     using std:::cin;

     using std::string;

     等等;

     这样我们就让程序知道了,我们使用的end,cin,cout,string这些类、宏是来自std命名空间中定义的类、宏;

     而Java中使用包来说明这些命名空间,也通过包来组织代码,我们先看一下下面的一个简单的Java项目,包含了两个包,以及他们的之间的访问,然后再详细的解释一下:

     

我们看到新建了一个项目:TestPackage,然后在src资源文件夹下有两个包:print和testPrint,我们将print.java文件创建在print包中,将testPrint.java文件创建在testPrint包中,Ps:包名和文件名没有强制要求一致,只是文件名要和文件中的public类的名字一致,不要搞混了哦,自己多创建几次就知道了,小汪汪,加油!

然后分别看一下print.java和testPrint.java中的代码:

//print.java
package print;

public class print 
{
	public static void Print()
	{
		System.out.println("Nothing");
	}
	
	public static void Print(String str)
	{
		System.out.println("print string:" + str);
	}
}

//testPrint.java
package testPrint;

import print.print;

public class testPrint 
{
	testPrint()
	{
		print.Print();
	}

	testPrint(String str)
	{
		print.Print(str);
	}
	
	public static void main(String []args)
	{
		testPrint test_1 = new testPrint();
		testPrint test_2 = new testPrint("wang xiaosu");
	}
}

执行结果是:


print.java文件中:

package print:表明这个print.java文件在print包中,也就是eclipse的workspace中,TestPackage项目下的源文件文件夹src下,print文件夹中,类似的testPrint.java中的package testPrint也是同样的意思,我们可以看一下src文件夹下自动创建了两个文件夹:


其中分别放着print.java文件和testPrint.java文件;

我们在testPrint.java文件中声明导入了print包中的print类,这样,我们就可以访问到print包中的print类,那为什么编译器就知道要去testPrint文件夹所在的同目录中的print文件夹下去找print类,而不会找不到这个print包呢?

这是因为同一个项目创建的文件在同一个命名空间中,这里可以理解为都在src包下,(包和文件夹的区别?这个还要再研究一下呀,小汪汪等等哈,我研究好了再补充上)

那为什么使用jdk提供的系统类也不需要将完整的路径名写上呢?这主要是CLASSPATH在起作用,你打开jdk的目录,然后在压缩文件管理器中打开CLASSPATH指示的文件,我的是.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;就是那个dt.jar和tools.jar,那个%JAVA_HOME%是对JDT安装目录的指代,你会发现你平时使用的所有的类都在各个包中放着;

现在再看我们这里的这个是不是很简单呀!对包是不是也有一定的了解了呢?

总结一下:我们可以使用包来管理我们的源码文件,将不同的类放着不同的包中,然后可以通过import导入我们需要的类,当然我们也可以直接写print.print这样来完整的声明是print包下的print类;以及对包中类的访问权限,参考上面一篇文章哦!

Little wangwang, I miss you...


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值