在实际项目中会有成百上千个类,我们把近似的类放在同一个包里面,比如把实体类放在实体类包里面
 

package 为解决类的 命名冲突问题而引入的机制。

package语句作为Java源文件的第一条语句。(若缺省该语句,则指定为无名包。) 约定俗成的给包起名为把公司域名倒过来写,如com.sun Java编译器把包对应于文件系统的目录管理,package语句中,用‘.’来指明包(目录)的层次,例如package com.sun;则该文件中所有的类位于.\com\sun目录下。

总结:

  1.如果你要把一个类放在包下面,第一句写package,你编译出来的类必须位于正确的目录下面。

该类的源码可能会产生影响(解决办法:删除或转移到别的目录)

  2.如果想在另一个类里面引用包里面的类,要把名字写全。(相当用文件的绝对路径访问)或者用import导入,但位于同一个包中的类不需要引入

  3.必须class文件的最上层包中的父目录位于classpath下面。

  4.编译后,执行一个类的时候也需要把包名写全,不然无法执行。

J2SDK中主要的包介绍(在jdk5.0/jre/lib/rt.jar里面,可用解压软件解开查看)

  Java.lang-包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能

  Java.awt-包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。

  Java.applet-包含applet运行所需的一些类

  Java.net-包含执行与网络相关的操作的类

  Java.io-包含能提供多种输入/输出功能的类

  Java.util-包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数

  其中就Java.lang包不用引入就能直接使用,其他包里面的类都要用import引入才能使用。

如何打包?

  先定位到classpath设置的目录下 jar -cvf xx.jar *.* -c 创建新的文档 -v 生成详细输出到详细输出上 -f 指定存档文件名 即把classpath下的所有文件打包成xx.jar文件 如何使用呢? 把xx.jar的绝对路径放到classpath下面,这样就可能正常访问了
eg.

在一个文件中

  package com.sun;

  public class Cat {

  }

在另一个文件中

  //import com.sun.*;

  public class T {

    public static void main(String[] args){

      com.sun.Cat c = new com.sun.Cat();

     }

  }

  1.把第一个文件编译生成的.class文件放到com.sun目录下,然后就可编译执行T.java了,其中Cat类必须为public

  2.第一个文件不变,修改二个文件成如下:

  import com.sun.Cat;

  public class T {

     public static void main(String[] args) {

       //com.sun.Cat c = new com.sun.Cat();

       Cat c = new Cat();

     }

   }

  同样可以达到目的。但是有点小问题,就是import com.sun.*;应该可以代替import com.sun.Cat;但在调试过程中却会报错。

  但是如果两上文件不在同一文件目录下,这时上面的程序就会报错。为此我们需要为此设置环境变量“classpath”,在里面添加路径,即com.sun的最上层目录的上一级目录,即存放com文件夹的目录名。这样程序就会从这里开始寻找需要的类。

  一个文件中可以同时有package和import存在,但在执行时要注意java 后面跟的文件名要写全。

Java环境变量的配置及意义

java中的Package语句和import语句的更多相关文章

  1. Java中的package和Import关键字的作用

    一.package关键的作用 1.包的概念 package翻译为包,本质上就是一个文件夹,通过包组织项目结构的过程,就是通过包对应的文件夹管理.java和.class文件的过程. 2.包的作用 通过包 ...

  2. Java 中 try、catch、finally 语句块的执行顺序

    假设代码顺序书写如下:try → catch → finally → 其他代码 则: 1.正常执行顺序:try → catch → finally → 其他代码 2.try,catch和finally ...

  3. Java中的可变参数以及foreach语句

    Java中的可变参数的定义格式如下: 返回值类型  方法名称(类型 ... 参数名称){} foreach语句的格式如下: for ( 数据类型  变量名称 :数据名称){ ... } public ...

  4. Java基础(2):Java中的四个跳转语句总结goto,break,continue,return

    跳转控制语句 Java中的goto是保留字,目前不能使用.虽然没有goto语句可以增强程序的安全性,但是也带来很多不便,比如说,我想在某个循环知道到某一步的时候就结束,现在就做不了这件事情.为了弥补这 ...

  5. Java中break、continue、return语句的使用区别

    break.continue.return之间的区别与联系 在软件开发过程中,逻辑清晰是非常之重要的. 代码的规范也是非常重要的.往往细节决定成败.在编写代码的时候,一定要理解语言的作用以及使用的方法 ...

  6. 模块(import语句,from...import语句,_name_属性)

    1, 什么是模块? 模块就是一系列功能的集合体 模块分为四个通用的类别: 1), 使用python编写的.py文件(*****) 2), 已被编译为共享库或DLL的C或C++扩展 3), 把一系列模块 ...

  7. java中的package

    java中用于存放源文件的文件夹叫做包package package中可以有源文件也可以由其他包. package的“全限定名”不是从磁盘的根目录开始的,而是从源代码的根目录开始的,以点号“.”作为分 ...

  8. Java中简单的操作(if语句、常用操作符、switch语句、变量赋值等)

    ---------------------if语句介绍--------------------------------------------------- class IfDemo { public ...

  9. 基础java中的package的命名规则和import的使用

    包的命名一般用公司域名但是注意域名后辍要放前面如下 package com.cnblogs.i.Cat//对应地址是com/cnblos/i/cat.class也就是Cat.class的地址 如果想将 ...

随机推荐

  1. lvs+heartbeat搭建负载均衡高可用集群

    [172.25.48.1]vm1.example.com [172.25.48.4]vm4.example.com 集群依赖软件:

  2. Windows与Linux文件共享

    Windows与Linux文件共享 Samba服务器 安装Samba服务器 rpm –ivh /mnt/Packages/Samba-3.5.10-125.el6.i686.rpm 添加用户并修改密码 ...

  3. COGS 859. 数列

    /* 先来说一下第一眼看到想出的奇葩方法23333.. 找每个数左右有几个比他小的 前几天刚学了区间第k小的求法 然后... 枚举中间的那个点 对于左区间 二分找到他是第几大 右区间同理 然后 *起来 ...

  4. Ci 简单分页,保证能实现

    某晚,自己写项目的时候去找资料,关于CI分页的, 发现百度出来的前几名的基本都是写的都是垃圾, 要么是实现不了,要么就是坑逼 所以我自己在这里写一个,不是很完美,只是说是简单的实现了原理 有了最基本的 ...

  5. Asp.net 菜单控件

    本文介绍的菜单控件采用的css 和ul list来显示菜单,生成的html小,无需javascript支持,对大部分的浏览器都支持,除ie6要单独修改css也可以使其支持. 通过本文可以了解asp.n ...

  6. MySQL主从复制详细部署过程

    环境介绍:   采用多实例进行主从复制测试,多实例方法请参考网上其它文档,其实多实例和双服务器对于测试环境来说是一样的.   当前采用3306端口进程为Master,3307端口进程为Slave.   ...

  7. springmvc问题汇总

    1.  IncompatibleClassChangeError in spring mvc Failed to read candidate component class.......       ...

  8. js中定义变量加var与不加var的区别?

    var 不一定是用来定义局部变量的 jscript的全局变量和局部变量的分界是这样的:                  过程体(包括方法function,对象Object o ={})外的所有变量不 ...

  9. eclipse 编辑 python 中文乱码的解决方案

    今天在学习python时做了一个用户输入一个目录地址,再输入内容,然后将输入的内容存入输入的目录文件中: 具体代码如下: #coding:utf- ''' Created on -- @author: ...

  10. SqlServer将数据库中的表复制到另一个数据库

    前述: 文章来自百度经验 操作: 在使用SqlServer的过程中,我们可能需要将表从一个数据库复制到另一个数据库中,今天,为大家介绍这种操作的具体方法及步骤. 复制表结构 1 首先,打开并连接Sql ...