关于package ——java笔记
来源:互联网 发布:js 设置div style 编辑:程序博客网 时间:2024/05/20 05:44
如何解决类名冲突呢?
Java兴义了名字空间:包
报名 + 类名 = 完整类名
如下代码
package xiaoming;public class Person{}
package xiaohong;public class Person{}
- 小明的Person类:xiaoming.Person
- 小红的Person类:xiaohong.Person
这样就可以区分开来了
Jvm只看完整类名,因此,只要包名不同,类就不同:
- xiaoming.Person
- xiaohong.Person
包可以是多层结构
- java.util.Arrays
包没有父子关系
- java.util和java.util.zip是不同的包,两者没有任何关系
因为JVM在家class并执行代码时,总是使用class的完整类名
- xiaoming.Person
- java.lang.String
- java.util.Arrays
- Hello(没有定义package,不推荐)
编译器编译后的class文件中全部是完整类名
这也就起到了用package来区分class的原理
包作用域
位于同一个包的类,可以访问包作用域的字段和方法:
- 不用public,protected、private修饰的字段和方法就是包作用域
package hello;public class World{ static int findMac(int[] ns)}
package hello;public class Map{ int price; void setPrice(int price){ }}
引用其他类
- 使用完整类名
- 先impport, 再使用类名
- 可以使用*(但是不推荐)
静态导入
- import static 可以导入一个类的静态字段和静态方法
- import static很少使用
import static java.lang.System.*;public class Main{ public static void main(String[] args){ //Sysout out.println("Hello, world");}}
查找class
编译器最终编译出的.class文件只使用完整类名,因此,在代码中,编译器遇到一个class名称时:
- 如果是完整类名,就直接根据完整类名查找
如果是简单类名:
- 查找当前package的class
- 查找import的class
- 查找java.lang包的class
如果无法确定类名:
- 编译错误
import java.text.Format;java.util.List list;//->java.util.ListFormat format - null; //>java.text.FormatString s = 'hi'; // ->java.lang.StringSystem.out.println(s); // -> java.lang.SystemMessageFormat mf = null; // Compile error;//MessageFormat cannot be resolved to a tye
自动import
在编写代码的时候,编译器有几条规则
编写class时:
- 默认自动import当前package的其他class
- 默认自动import java.lang.*
我们在使用的时候有以下几点需要注意
报名使用倒置的域名确保唯一:
Org.apache
org.apache.commons.log不要和java.lang包的类崇明:
String.System,Runtime….- 不要和JDK常用类重名:
java.util.List,java,text.Fromat,java.math.Biginteger
- 不要和JDK常用类重名:
以上内容来自廖雪峰老师的飞扬学院。
阅读全文
0 0
- 关于package ——java笔记
- <java——异常、package>
- java包(Package)笔记
- Lua学习笔记六——package
- Lua学习笔记六——package
- Lua学习笔记六——package
- Lua学习笔记六——package
- JAVA学习笔记6——package+API文档+Scanner类
- JAVA中的PACKAGE机制——(好文转帖)
- java 中关于package的一个问题
- java关于package语句存在的意义。
- 关于java中package的问题
- Java中关于package的总结
- Java中关于package的总结
- Java中关于package的总结
- 在Java中,关于package和import
- 关于@package
- 关于package
- Java 面向对象的总结 初级篇 1
- TCP-IP学习笔记(八)——RARP:逆地址解析协议
- zookeeper的永久监听
- Jenkins学习——邮件配置
- QScrollArea 用法总结
- 关于package ——java笔记
- echarts结合poi-word导出的简单处理
- java 3年经验面试题
- 浅谈欧拉定理
- ASP.NET
- 【IO/NIO】Java IO/NIO
- 如何在排序数组中,找出给定数字出现的次数
- 【RabbitMQ】——环境搭建
- 单例模式下的双重检验锁Double Checked Locking