1.7(java学习笔记)package和import
package
package主要用于管理类,在java中同一个包下不能有相同的类名,可有时项目总会出现很多同名的类,这时就需要通过包来管理类。不同的包下可以有相同的类名。
包就有点类似于文件夹,不同文件夹中可以有相同的文件名,一个文件夹下不能有同名的文件。
包的命名规则一般是域名倒着写,后面再加具体项目名称。
例如京东的就是 cn.jd.123
例如下面位于包cn.hcf.pro3下的TestExtends.java文件和位于包cn.hcf.TestThis包下的TestPackage.java文件中都有Person类,但他们处于不同的包中是可以的。
但当它们位于同一个包下时是不可以的。
2.import
import可以导入其他包的类,但这个类必须是以public修饰的(这个知识点还需要学习后面的访问控制才知道为什么)。
例如下面我在cn.hcf.oo包下的TestEqu中要用TestPackage包下的TestPackage类,就需要用import导入。
如果不导入,在一个包中使用其它包的类,则会出行错误。
package cn.hcf.oo; import TestPackage.*; //包后面加*就代表导入TestPackage包中的所有类,也可以单独导入包中的一个类,
//import TestPackage.TestPackage 就代表导入TestPackage包中TestPackage类。
public class TestEqu {
public static void main(String[] args){
TestPackage n = new TestPackage(); }
}
导入还有静态属性的导入,比如在java.lang包下的Math类中有PI(圆周率)这个静态属性。我们使用要这样写,Math.PI,代表使用PI。
我们可以用静态属性的导入, import static java.lang.math.PI;就导入了PI这个静态属性,导入后可以直接写PI,因为该属性已被导入。
还有一个问题,导入时例如我们要使用Date类,在cn.test.1这个包和cn.test.2这两个包中都有Date类,我们导入时这样写
import cn.test.1.Date;
import cn.test.2.*;
那么我们用new = Date()新建一个对象时,优先选择具体导入的类,就是说此时的Date是cn.test.1包中Date;
如果我们既要使用cn.test.1中的Date,也要使用cn.test.2中的cn.test.2中的Date时
即使使用 import导入也会出现错误,因为创建Date时无法识别到底是哪一个包中的Date
这时我们需要写出Date具体的路径。
例如我们两个都要使用时:
cn.test.1.Date D1 = new cn.test.1.Date();
cn.test.2.Date D2 = new cn.test.2.Date();
最新文章
- sqlserver查看所有的外键约束
- 正确理解ThreadLocal
- MSDN论坛被垃圾信息刷爆了!!!
- WPF:父窗口与子窗口的层次关系
- Thinking in Java——笔记(7)
- UVALive 3942 Remember the Word(字典树+DP)
- WCF客户端承载
- HTTP请求415错误 – 不支持的媒体类型(Unsupported media type)
- 选择问题(选出第i个最小元素)
- jQuery 分步引导 插件
- 阿里云部署Docker(5)----管理和公布您的镜像
- 8.0 BOM对象
- 熔断器C#实现
- Trick 小记
- 浅析如何在Nancy中生成API文档
- Android开发之手把手教你写ButterKnife框架(一)
- nginx隐藏tp路由index.php
- Vue Router学习笔记
- 机器学习库--dlib
- MySQL Split 函数
热门文章
- C++ 智能指针的简单实现
- Spring学习之路——单例模式和多例模式
- HASHMAP 深入解析
- 【BZOJ1101】Zap [莫比乌斯反演]
- 汕头市队赛 C SRM 05 - YYL 杯 R1 T3!
- bzoj3669: [Noi2014]魔法森林 lct版
- UITableView学习之辨析两个方法:⓵dequeueReusableCellWithIdentifier与⓶dequeueReusableCellWithIdentifier:forIndexPath:
- 【洛谷 P1651】 塔 (差值DP)
- [bzoj2251][2010Beijing Wc]外星联络——后缀数组+暴力求解
- django原生sql