廖雪峰Java2面向对象编程-5包和classpath-1包package
1.package的意义
如下,存在多个相同类名的文件。当引用Person类,将无法确定引用小红,还是小明的Person类,即同名类的冲突。
小明的Person类:Person
小红的Person类:Person
小军的Arrays类:Arrays
JDK的Arrays类:Arrays
package就是用来解决类名冲突的。
- Java定义了名字空间:package 包
- 对于任何一个类,其完整类名是:包名 + 类名.
- JVM 只看完整类名,因此,只要确保包名不同,类就不同.
如
小明的Person类放在xiaoming的包中,其Person的完整类名是:xiaoming.Person
小红的Person类放在xiaohong的包中,其Person的完整类名是:xiaohong.Person
小军的Arrays类放在xiaojun的包中,其Arrays的完整类名是:xiaojun.Arrays
JDK的Arrays类放在java.util的包中,其Arrays的完整类名是:java.util.Arrays
- 包可以是多层机构 java.util.Arrays
- 包没有父子关系 java.util和java.util.zip是不同的包,两者没有任何关系
JVM加载class并执行代码时,总是使用class的完整类名。因此JVM看到的都是完整类名。
xiaoming.Person
java.lang.String
java.util.Arrays
Hello(没有定义package,不推荐)
包作用域:不用public、protected、private修饰的字段和方法就是包作用域
位于同一个包的类,可以访问包作用域的字段和方法
1.引用其他类
使用完整类名
java.util.Arrays.sort(ns);
先import,再使用类名
import java.util.Arrays;
Arrays.sort(ns);
可以使用,不推荐
import java.util.
Arrays.sort(ns)
廖雪峰Java2面向对象编程-5包和classpath-1包package的更多相关文章
- 廖雪峰Java2面向对象编程-5包和classpath-4classpath和jar
1.classpath 1.1classpath定义 classpath是一个环境变量 classpath指示JVM如何搜索class classpath设置的搜索路径与操作系统相关 * window ...
- 廖雪峰Java2面向对象编程-3继承和多态-1继承
1.继承 继承是一种代码复用的方式. Student与Person有相同部分的代码. Student可以从Person继承,这样Student获得了Person的所有功能,只需要编写新增的功能即可.通 ...
- 廖雪峰Java2面向对象编程-1面向对象-1面向对象基础
1.对象的概念 面向对象编程:Object-Oriented Programming 对现实世界建立计算机模型的一种编程方法. 现实世界 计算机模型 Java代码 人 类/class class Pe ...
- 廖雪峰Java2面向对象编程-5包和classpath-3作用域
1.访问权限 Java的类.接口.字段和方法都可以设置访问权限 访问权限是指在一个类的内部,能否引用另一个类以及访问它的字段和方法 访问权限有public.protected.private和pack ...
- 廖雪峰Java2面向对象编程-5包和classpath-1静态字段和方法
1.静态字段 1.1定义:用static修饰的字段称为静态字段 普通字段在每个实例中都有自己的一个独立的空间 静态字段只有1个共享空间,所有实例都共享该字段. public class Person{ ...
- 廖雪峰Java2面向对象编程-4抽象类和接口-2接口
1.接口的定义 抽象方法本质上是定义接口规范. 在抽象类中定义了一个抽象方法,子类中必须实现这个抽象方法. public abstract class Person{ public abstract ...
- 廖雪峰Java2面向对象编程-4抽象类和接口-1抽象类
每个子类都可以覆写父类的方法 如果父类的方法没有实际意义,能否去掉方法的执行语句?子类会报编译错误 如果去掉父类的方法,就失去了多态的特性 可以把父类的方法声明为抽象方法. 如果一个class定义了方 ...
- 廖雪峰Java2面向对象编程-6Java核心类-6常用工具类
1.Math Math提供了数学计算的静态方法 序号 方法 描述 1 abs() 返回参数的绝对值.Math.abs(-9)//9 2 ceil() 返回大于等于( >= )给定参数的的最小整数 ...
- 廖雪峰Java2面向对象编程-6Java核心类-5枚举类
直接定义常量 public class Weekday { //定义int常量 public static final int SUN = 0; public static final int MON ...
随机推荐
- 实验吧—Web——WP之 上传绕过
我们先上传一个png文件,发现他说必须上传后缀名为PHP的文件才可以,那么,我们尝试一下,PHP文件 但是他又说不被允许的文件类型 在上传绕过里最有名的的就是00截断,那么我们就先要抓包 在这里我们需 ...
- Example [mybatis] 的用法
example.or() .andField1EqualTo() .andField2IsNull(); example.or() .andField3NotEqualTo() .andField4I ...
- MySQL--时间戳属性2
在MySQL 5.6版本中引入参数explicit_defaults_for_timestamp设置,该参数会影响Timestamp的默认属性. 同时在MySQL 5.6版本中中,去除一张表只能有一个 ...
- Gravitee.io api gateway 试用
以前写过几篇关于整体介绍的以及 使用docker 运行的简单说明,有了docker-compose 环境我们可以 方便的进行测试使用了. 环境准备 docker-compose 文件 versio ...
- create-react-app:reject和不reject(使用react-app-rewired)这2种情况下的antd组件按需引入配置
create-react-app:eject和不eject(使用react-app-rewired)这2种情况下的antd组件按需引入配置: 不eject(使用react-app-rewired)配置 ...
- jQuery的ready()事件与js中的onload事件的区别
出处:http://blog.csdn.net/yuanmei1986/article/details/50781453
- 定时任务的N种解决方案
1, java 有个延时任务接口 DelayQueue 实现这个接口可以做到延时队列 缺点:耗费资源,不持久( java程序重启后丢失 ), 2. 基于spring 定时任务. 缺点:定时执行,不能 ...
- Linux基础入门之vsFTP+MySQL/MariaDB认证实现虚拟用户配置详解
https://www.dwhd.org/20150603_144841.html 摘要 VSFTP可以使用系统账户或者匿名账户登录,但是出于安全的考虑,通常建议使用vsftp虚拟账户来登录ftp服务 ...
- 十一、springboot(六)整合Thymeleaf
1.添加jar包依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId ...
- 爬取ofo共享单车信息
前段时间看到很多微信公众号在转发一篇爬取mobike单车的信息,也不知道什么原因,在网上搜索了下很少有人在爬取ofo共享单车的数据,所以决定看看可以爬取ofo共享单车的那些数据. 抓取数据开始的时候, ...