黑马程序员_Java面向对象_包
7.包
7.1包(package)
- 对类文件进行分类管理。
- 给类提供多层命名空间。
- 写在程序文件的第一行。
- 类名的全称是:包名.类名。
- 包也是一种封装形式。
利用命令行自动生成文件夹格式:D:\java0217\day10\javac -d . PackageDemo.java
"-d":指定这个包所存放的位置。
".":代表当前目录。可以不指定当前。
一般写项目必须先写包再写类,因为写项目有N多类组成,必须进行有效的区分,代表着每组类不同的功能。
以前没有写是因为使用了Java中默认的包机制,只要在当前目录下没有指定包,Java就把当前目录作为默认包存在。
包的出现可以让类文件(源文件)和运行文件相分离。好处在于,只要把运行文件拷给对方就能用了。没有必要给源文件。
当想要使用包中的一个类的时候,classpath只要指向包的父目录即可。
包与包之间的访问
1、当调用其他包的类使,类的全名是:包名.类名
2、packa包不在当前目录下,需要设置classpath告诉JVM去哪里找指定事物packa包。
3、有了包范围变大,一个包中的类要被访问,必须要有足够大的权限。所以要被public修饰。
4、类共有后,被访问的成员也要共有,才可以被访问。
总结:
1、包与包之间进行访问,被访问的包中的类以及类中的成员,需要public修饰。
2、不同包中的子类还可以直接访问父类中被protected权限修饰的成员。
包与包之间可以使用的权限只有两种:public ,protected。
public | protected | default | private | |
同一个类中 | OK | OK | OK | OK |
同一个包中 | OK | OK | OK | |
子类 | OK | OK | ||
不同包中 | OK |
导入import
为了简化类名的书写,使用一个关键字,import。
import导入的是包中的类。
import packb.haha.hehe.heihei.Democ;//导入Demo类,不必在本类中packb.haha.hehe.heihei.Democ c = new packb.haha.hehe.heihei.Democ
import packb.haha.hehe.heihei.* //*代表把heihei里所有的类导进来。建议一般情况下不用通配符*,需要用到包中的哪个类,就导入哪个类。
c:\myclass\packb\DemoA.class
c:\myclass\packb\heihei\DemoZ.class
import packb.*//导入的仅仅是packb中所有的类。
import packb.heihei.*//导入的是heihei包中所有的类。
当导入不同包中的类,出现重名的情况,必须加包名。packb.haha.hehe.heihei.Democ c = new packb.haha.hehe.heihei.Democ
建议定义包名不要重复,可以使用url 来定义,url是唯一的。
黑马程序员_Java面向对象_包的更多相关文章
- 黑马程序员_Java面向对象_内部类
6.面向对象_内部类 1.内部类定义 内部类:将一个类定义在另一个类里面,对里面那个类就称为内部类.(内置类.嵌套类)内部类可以被私有修饰. 2.内部类访问规则 访问特点: 内部类可以直接访问外部类中 ...
- 黑马程序员_Java面向对象_异常
6.异常 1.异常: 就是程序在运行时出现不正常的情况.问题也是现实生活中一个具体的事物,也可以通过Java的类进行描述,并封装成对象.Exception和Error的子类名都是以父类名作为后缀名. ...
- 黑马程序员_Java面向对象3_多态
5.面向对象_多态 多态定义:某一种事物存在的多种形态. 例:动物中猫,狗. 猫这个对象对应的类型是猫类型. 猫 x = new 猫(); 同时猫也是动物的一种,也可以把猫称为动物. 动物 y = n ...
- 黑马程序员_Java面向对象2_继承
4.面向对象_继承 4.1继承的概述 提高了代码的复用性. 让类与类之间产生了关系,有了这个关系,才有多态的特性. 注意:千万不要为了获取其他类的功能而去继承,简化代码而继承.必须是类与类之间有所属关 ...
- 黑马程序员_Java面向对象1_封装
3.面向对象_封装 3.1面向对象概念 3.1.1理解面向对象 面向对象是相对面向过程而言 面向对象和面向过程都是一种思想 面向过程:强调的是功能行为(执行者) 面向对象:将功能封装进对象,强调具备了 ...
- 黑马程序员_Java基础视频-深入浅出精华版--PPT 文件列表
\day01\code\第一章_Java概述.ppt;\day01\resource\资料\50道编程题(有精力的同学看看).doc;\day01\resource\资料\Sun_Java程序员认证考 ...
- 黑马程序员_Java基础组成
Java语言基础组成 2.1关键字 main不是关键字,但被JVM所识别的名称. 关键字的定义和特点 定义:被Java语言赋予了特殊含义的单词. 特点:关键字中所有字母都为小写. 用于定义数据类型的关 ...
- 课程2:《黑马程序员_Java基础视频-深入浅出精华版》-视频列表-
\day01\avi\01.01_计算机基础(计算机概述).avi; \day01\avi\01.02_计算机基础(计算机硬件和软件概述).avi; \day01\avi\01.03_计算机基础(软件 ...
- 黑马程序员_Java基础:网络编程总结
------- android培训.java培训.期待与您交流! ---------- Java语言是在网络环境下诞生的,它是第一个完全融入网络的语言,虽然不能说它是对支持网络编程做得最好的语言,但是 ...
随机推荐
- java——Arrays.asList()方法
Arrays.asList() 是将数组作为列表 问题来源于: public class Test { public static void main(String[] args) { int[] a ...
- Spring的StringUtils工具类
本文是转载文章,感觉比较好,如有侵权,请联系本人,我将及时删除. 原文网址:<Spring的StringUtils工具类> org.springframework.util.StringU ...
- 你需要知道的九大排序算法【Python实现】之堆排序
六.堆排序 堆排序是一种树形选择排序,是对直接选择排序的有效改进. 堆的定义下:具有n个元素的序列 (h1,h2,...,hn),当且仅当满足(hi>=h2i,hi>=2i+1)或(h ...
- javascript实现限制上传文件的大小
目录 基本思路 示例 [一].基本思路 在FireFox.Chrome浏览器中可以根据document.getElementById(“id_file”).files[0].size 获取上传文件的大 ...
- Java基础知识强化38:StringBuffer类之StringBuffer的添加功能
1. StringBuffer的添加功能: public StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身. publ ...
- Java基础知识强化34:String类之String类的转换功能
1. String类的转换功能 String[] split(String regex)//将字符串变成字符串数组(字符串切割) byte[] getBytes()//将字符串变成字节数组 char[ ...
- ExifInterface 多媒体文件附加信息
简介 ExifInterface类主要描述多媒体文件比如JPG格式图片的一些附加信息,包括拍摄时的光圈.快门.白平衡.ISO.焦距.日期时间等各种和拍摄条件以及相机品牌.型号.色彩编码 ...
- 图片变换 矩阵 Bitmap Matrix
Matrix矩阵介绍 在Android中,对图片的处理需要使用到Matrix类,Matrix是一个3 x 3的矩阵,内部就是个一维数组,内部有9个元素:可以通过setValues( float[])进 ...
- NumberSpinner( 数字微调) 组件
本节课重点了解 EasyUI 中 Spinner(微调)组件的使用方法,这个组件依赖于Numberbox(数值输入框)和 Spinner(微调)组件. 一. 加载方式//class 加载方式<i ...
- EF中的自动追踪与代理
自动追踪 EF框架会自动追踪实体的变化(通过比较实体的当前值与原始值). 默认情况下,以下方法会自动触发实体变化的追踪 DbSet.Find DbSet.Local DbSet.Remove DbSe ...