包:其实就是文件夹。为了区别类名的命名空间,对进行分类管理。
相同的类名放到不同的包中。

包的定义

package 包名;
多级包用.分开。

注意:package语句在一个java文件只能有一个。如果没有package,默认表示无包名。

包的分类

如,学生:增、删、查、改
  老师:增、删、查、改
1、按模块分包

  • cn.xschool.student:AddStudent、DeleteStudent、SearchStudent、UpdateStudent
  • cn.xschool.teacher:…

2、按功能分包

  • cn.xschool.add:AddStudent、AddTeacher
  • cn.xschool.delete:….
  • cn.xschool.search:…
  • cn.xschool.update:…

    常在模块的基础上,再按功能分。

带包的类编译和运行

package bao.hi;/*手动式:javac HelloJava.java命令编译后,将生成的class文件放到包目录(自己建文件夹)的最底层。然后回到和包根目录在同一目录的地方,java bao.hi.HelloJava命令运行自动式:javac -d . HelloJava.java编译,java bao.hi.HelloJava命令运行注意:编译时不带包名编译,运行时带包名运行 “带包运行”
*/
class HelloJava{public static void main(String[] args){ System.out.println("helloJava");}
}

不同包下类之间的访问

import 包名;导入到类的名称。用谁导谁,不建议用*。

一个java文件里,package只能有一个,import可以有多个,class可以有多个,以后建议一个java文件里一个class。

例:
两个包。让shuzu.tool包放ArrayTool.java编译后形成的class文件,shuzhu.test包放ArrayDemo.java编译形成的class文件。在ArrayDemo.java里需要用到(访问)ArrayTool.java里的ArraTool类。怎么做,怎么编译运行?
1、写好两个文件ArrayTool.java、ArrayDemo.java(这是我之前数组工具类那块举例的代码)
1)ArrayTool.java:
导的包:package shuzu.tool;

package shuzu.tool;/**
*这是针对数组进行操作的工具类
*@author 元气满满晨
*@version V1.0
*/public class ArrayTool{/***这是私有构造*/private ArrayTool(){}/***这是遍历数组的方法。遍历后的格式是:元素1-元素2-元素3...*@param arr 这是要被遍历的数组*/public static void printArray1(int[] arr){for(int i=0; i<arr.length; ++i){if(i==arr.length-1){System.out.println(arr[i]);}elseSystem.out.print(arr[i]+"-");}}/***这是获取数组中最大元素的方法。*@param arr 这是要获取最大值得数组*@return 返回数组中的最大值*/public static int getMax(int[] arr){int max= arr[0];for(int i=1; i<arr.length; ++i){if(arr[i]>max){max=arr[i];}}return max;}/***获取指定元素在数组中第一次出现的方法。若数组中不存在该元素,返回-1*@param arr 被搜索的数组*@param value 要找的元素*@return 返回元素在数组中的索引。若数组中不存在该元素,返回-1*/public static int getIndex(int[] arr, int value){int index=-1;for(int i=0; i<arr.length; ++i){if(arr[i]==value){index=i;break;}}return index;}
}

2)ArrayDemo.java:
导的包:package shuzu.test;
导的类:import shuzu.tool.ArrayTool;

package shuzu.test;import shuzu.tool.ArrayTool;//ArrayDemo.java要用到ArrayTool类//测试类
class ArrayDemo{public static void main(String[] args){int[] arr={22,33,44,55,66};ArrayTool.printArray1(arr);int max=ArrayTool.getMax(arr);System.out.println("max is "+max);int index=ArrayTool.getIndex(arr, 33);System.out.println("Value is number"+(index+1));}
}

2、编译
1)当然先编译ArrayTool.java文件啦,因为ArrayDemo.java要用到ArrayTool类:

javac -d . ArrayTool.java

编译后:自动创建好shuzu.tool目录,test文件夹下得到ArrayTool.class文件
2)编译ArrayDemo.java文件

javac -d . ArrayDemo.java

编译后:自动创建好shuzu.test目录,test文件夹下得到ArrayDemo.class文件

3、运行

java shuzu.test.ArrayDemo

得到结果:
22-33-44-55-66
max is 66
Value is number2

java中包、不同包下类之间的访问以及编译和运行示例相关推荐

  1. java中常用的包、类、以及包中常用的类、方法、属性----sql和text\swing

    java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.sql.*; java.text.*; java.a ...

  2. 打包部署后无法读取jar包里的文件(实测可行,Java中读取jar包中的文件)

    打包部署后无法读取jar包里的文件 Java中读取jar包中的文件 linux中无法读取jar包中的内容(windows可以的!),如何解决 一.背景 项目中免不了需要读取文件,如果文件用绝对路径读取 ...

  3. JAVA 中的代码生成包 CGLIB (Code Generation Library)

    JAVA 中的代码生成包 CGLIB (Code Generation Library) CGLIB 是一个功能强大,高性能的代码生成包.它为没有实现接口的类提供代理,为 JDK 的动态代理提供了很好 ...

  4. java中常见的包类接口_Java中一些常用的类,包,接口

    类:1.java.lang.Object 2.java.lang.String 3.java.lang.System 4.java.io.file 5.java.io.FileInputStream ...

  5. java中的JAR包

    使用JAR文件 JAR文件的全称是 Java Archive File,意思就是Java档案文件.通常JAR文件是一种压缩文件,与常见的ZIP压缩文件兼容,通常也被称为JAR包.JAR文件与ZIP文件 ...

  6. 在Java中 什么叫包-包有什么用途-如何创建包-

    1.什么叫包? 为了更好地组织类,Java提供了包机制.包是类的容器,用于分隔类名空间.如果没有指定包名,所有的示例都属于一个默认的无名包.Java中的包一般均包含相关的类,例如,所有关于交通工具的类 ...

  7. java中package(包)的使用理解

    最近在学习java,在学习到对象和类这一部分时,接触了java中很重要的一个概念:package,也就是包.一开始对于package的使用我产生了许多疑惑,不仅是理论上的,在实际写代码的尝试中也出现了 ...

  8. Java中的Atomic包使用指南

    转载自 http://ifeve.com/java-atomic/ 本文首发于并发网,作者:方腾飞 引言 Java从JDK1.5开始提供了java.util.concurrent.atomic包,方便 ...

  9. java中的jar包以及单元测试

    1. jar包 jar包是什么? jar包:是java中的特殊的一种压缩格式的包 jar包中压缩的是class文件,把jar包提供给需要的项目使用 导出jar包的步骤: 右键单击要导出的jar包的项目 ...

  10. java中缺省包_Java 中的默认包问题

    起因 今天看< Java 编程思想>第六章的时候看到这样一句话: 一定要记住,相同目录下的所有不具有明确 package 声明的文件,都被视作是该目录下默认包的一部分. 以前没有深入了解过 ...

最新文章

  1. 流水灯实例,点亮发光管LED并闪烁(查表操作)
  2. 【MM配置】Global Data 全局数据相关配置
  3. 攻防世界 ——crypto
  4. 阿里云 Serverless 事件总线 EventBridge 重磅发布
  5. 利用JSP编写程序初步
  6. 缓存一致性协议MESI
  7. JMeter压测笔记
  8. WSL安装记录及相关
  9. 解决TeamViewer的“现在无法捕捉画面。可能由于快速切换或者远程桌面断开或者最小化”问题...
  10. 安卓开发中Theme.AppCompat.Light的解决方法
  11. matlab/simulink通...,详解MATLAB/Simulink通信系统建模与仿真
  12. 《钢构CAD》不断致力于帮助用户取得更多成就
  13. mac nginx php-fpm,Mac OS nginx 502 解决记录(php-fpm 启动失败)
  14. python登录接口并发测试_使用python脚本作接口并发测试
  15. 电子技术在计算机的应用与未来展望,电子信息技术的应用特点与未来发展趋势研究...
  16. 「ZBrush」学习ZB出来可以从事什么工作?小白都知道吗?
  17. 怎么把android的状态栏改成蓝色,教程分享:如何实现Android沉浸式状态栏——教你让你的状态栏变个色!...
  18. 创新型中小企业认定评定标准
  19. 使用python下载网易云课堂中Andrew Ng的机器学习课程
  20. Python爬取返利网(今日值得买)数据

热门文章

  1. c语言二十四点算法,本文实例为大家分享了C语言经典24点算法的具体实现代码,供大家参考,具体内容如下1、概述  给定4个整数,其中每个数字只能使用一次;任意使用 + - * /...
  2. java基础继承合集
  3. 【第70期】终于找到了!AI学习路线图——从零基础到就业
  4. 存储过程(无参,IN多个输入参数,OUT多个输出参数,INOUT输入输出)
  5. Windows XP 系统下使用宽带上网真方便
  6. Nacos入门之服务注册中心以及命名空间分组和DataID三者关系
  7. 2017年10月19日 第十次总结
  8. 数据库的读写分离、分库分表(一)
  9. 第22批符合道路运输车辆卫星定位系统标准 及规范的车载终端
  10. Smartbi报表工具的学习笔记,如何学好报表分析?