Java 包的概述和讲解
2017-11-02 22:58:45
包(package):其实就是文件夹。
包的作用是对类进行分类的管理,并且区分不同的类名。
举例:
学生:增加,删除,修改,查询
教师:增加,删除,修改,查询
...
方案一:按功能分类
com.add
AddStudent
AddTeacher
com.delete
DeleteStudent
DeleteTeacher
com.update
UpdateStudent
UpdateTeacher
com.find
FindStudent
FindTeacher
方案二:按模块分类
com.Student
AddStudent
DeleteStudent
UpdateStudent
FindStudent
com.Teacher
AddTeacher
DeleteTeacher
UpdateTeacher
FindTeacher
注意事项:必须是第一条代码;一个java文件只能有一句;如果没有package,默认无包名。
带包的编译和运行:A:手动式
a:编写一个带包的java文件
b:通过javac进行编译该文件
c:手动创建包名,并将生成的.class文件放到文件夹中
d:回到java文件的文件夹,带包名编译
B:自动式
a:编写一个带包的java文件
b:通过javac进行编译该文件,加上 -d . 即可 (-d参数的作用是指定生成java包的根目录,"."表示当前目录下创建包)
不同包下的类之间的访问:
1、不同包下首先需要加上包名限定
2、必须要先把需要的包的字节码文件编译出来
3、不同包下的权限问题
package com.cnblogs public Class Test
{
public static void main()
{
//不同包下需要加包名
//Demo demo = new Demo();
com.edit.Demo demo = new Demo();
System.out.println(demo.sum);
}
}
导包功能:不同包下的类之间的访问,每次需要使用不同的包下的类的时候,都需要加上包的全路径。比较麻烦。这时候,Java就提供了导包功能。也就是import命令。
格式:import 包名;
需要的java类,要么拷到当前目录,要么拷到classpath中设置的目录,比如说c:\java\jdk\lib(前提是你要在classpath中设置这个目录)
import只能用于同级目录或下级目录的情况,比如你的程序放在d盘,而你要导入abc目录中的类,那么在程序开头写 import abc.*;
假如你要导入abc目录下的efd目录下的类,那么写 import abc.efd.*;
以此类推另外, import 只能导入.class文件,不能导入.java文件
注意:这种方式是导入到类的名称;
虽然可以最后写.*,不过不推荐使用这种方式;
不同包之间的权限问题:不同包之间的类的访问的修饰符只能是public和protected。
注意:不同包下子类是无法访问父类的protected修饰的成员的。
Java 包的概述和讲解的更多相关文章
- 10-03 Java 包的概述和讲解
带包的编译和运行 A:手动式 a:编写一个带包的java文件. b:通过javac命令编译该java文件. c:手动创建包名. d:把b步骤的class文件放到c步骤的最底层包 e:回到和包根目录在同 ...
- Java包的基本概述
第七章 7.1 包的基本概述 起因: 在我们设计一个程序的时候(尤其是多人合作),会写一些类来实现功能,但是往往会有重名的现象发生,为了解决这个问题,则专门设计了包.(还有其他作用,下述) 简单理解: ...
- Notes 20180506 : Java程序设计语言概述
2.Java程序设计语言概述 如果对于开发语言的排行榜有所关注的话,那么会发现很长一段时间以来Java都是位居榜首的高级开发语言,作为一个Java开发者,为此感到骄傲的同时也深感忧虑,骄傲的是自己接触 ...
- Java类加载器概述
Java类加载器概述 Java 中的类加载器大致可以分成两类,一类是系统提供的,另外一类则是由Java 应用开发人员编写的. 系统提供的类加载器 引导类加载器 它用来加载 Java 的核心库,是用原生 ...
- Java Reference简要概述
@(Java)[Reference] Java Reference简要概述 Reference对象封装了其它对象的引用,可以和普通的对象一样操作. Java提供了四种不同类型的引用,引用级别从高到低分 ...
- Python 包的相对导入讲解
[Python 包的相对导入讲解] 参考:http://www.dai3.com/python-import.html
- Android 虚拟机Dalvik、Android各种java包功能、Android相关文件类型、应用程序结构分析、ADB
Android虚拟机Dalvik Dalvik冲击 随着Google 的AndroidSDK 的发布,关于它的API 以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举.不过,其中的一个话题在J ...
- 在Eclipse工具里创建maven的web工程,在建立src/main/java包出现The folder is already a source folder.解决
1. 与创建普通java工程一样,点击右键找到New菜单,在弹出的界面输入maven ---->>点击maven Project------>>点击next 2 进入下一个界 ...
- android工程gen目录中R.java包名是怎么确定
新建一个工程,包名用的com.mythroad.adskiller, 后来觉得不好,又改成com.mythroad.adsinscepter,但是我发现gen下的R.java文件的包名还是原来的com ...
随机推荐
- 深入理解php内核——读书笔记1
第一章 基础准备 宏定义 #字符串化 ##连接符 do{}while(0) 多行 全局宏: EG.PG 第二章 用户代码的执行 php请求的生命周期 SAPI接口 php脚本执行 第三章 变量及数据类 ...
- sql 各种锁
SELECT * FROM table WITH (HOLDLOCK) 注意: 锁定数据库的一个表的区别 SELECT * FROM table WITH (HOLDLOCK) 其他事务可以读取表,但 ...
- windows脚本的if语句
- ARM的Trust Zone技术
ARM的Trust_Zone技术是一个系统的Access Control的架构. 与AXI,AHB,APB其中的secure,supervisor信号相关联. 与ARM core的模式相关连,当ARM ...
- 圆的k次面积并
搬运别人的 https://vjudge.net/problem/SPOJ-CIRUT //china no.1 #pragma comment(linker, "/STACK:102400 ...
- Linux基础命令---dumpe2fs
dumpe2fs 显示ext2.ext3.ext4文件系统的超级快和块组信息.此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.openSUSE.Fedora. 1.语法 ...
- linux基础命令---mswap
mkswap 在Linux设备或者文件中创建交换分区,创建完成之后必须使用swapon来使用它.一般在“/etc/fstab”中有一个交换分区列表,这样开机的时候就可以使用它. 此命令的适用范围:Re ...
- javascript闭包(Module模式)的用途和高级使用方式
javascript闭包(Module模式)的用途和高级使用方式 javascript闭包的用途:1. 匿名自执行函数:或者可以理解为,避免污染全局变量2. 缓存:源于闭包的核心特性便是保存状态,应用 ...
- 你真的了解微服务架构吗?听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构
微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然微服务架构没有公认的技术标准和规范或者草案,但业 ...
- Java系列笔记(5) - 线程
我想关注这个系列博客的粉丝们都应该已经发现了,我一定是个懒虫,在这里向大家道歉了.这个系列的博客是在我工作之余写的,经常几天才写一小节,不过本着宁缺毋滥的精神,所有写的东西都是比较精炼的.这篇文章是本 ...