zoukankan      html  css  js  c++  java
  • 10.14_package_1

    Java 包(package)

    为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。

    包的作用

    • 1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。

    • 2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。

    • 3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。

    Java 使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)、接口、枚举(enumerations)和注释(annotation)等。

    包语句的语法格式为:

    package pkg1[pkg2[pkg3]];

    例如,一个Something.java 文件它的内容

    package net.java.util; public class Something{ ... }

    那么它的路径应该是 net/java/util/Something.java 这样保存的。 package(包) 的作用是把不同的 java 程序分类保存,更方便的被其他 java 程序调用。

    一个包(package)可以定义为一组相互联系的类型(类、接口、枚举和注释),为这些类型提供访问保护和命名空间管理的功能。

    以下是一些 Java 中的包:

    • java.lang-打包基础的类
    • java.io-包含输入输出功能的函数

    开发者可以自己把一组类和接口等打包,并定义自己的包。而且在实际开发中这样做是值得提倡的,当你自己完成类的实现之后,将相关的类分组,可以让其他的编程者更容易地确定哪些类、接口、枚举和注释等是相关的。

    由于包创建了新的命名空间(namespace),所以不会跟其他包中的任何名字产生命名冲突。使用包这种机制,更容易实现访问控制,并且让定位相关类更加简单。


    创建包

    创建包的时候,你需要为这个包取一个合适的名字。之后,如果其他的一个源文件包含了这个包提供的类、接口、枚举或者注释类型的时候,都必须将这个包的声明放在这个源文件的开头。

    包声明应该在源文件的第一行,每个源文件只能有一个包声明,这个文件中的每个类型都应用于它。

    如果一个源文件中没有使用包声明,那么其中的类,函数,枚举,注释等将被放在一个无名的包(unnamed package)中。

    例子

    让我们来看一个例子,这个例子创建了一个叫做animals的包。通常使用小写的字母来命名避免与类、接口名字的冲突。

    在 animals 包中加入一个接口(interface):

    Animal.java 文件代码:

    /* 文件名: Animal.java */ package animals; interface Animal { public void eat(); public void travel(); }

    接下来,在同一个包中加入该接口的实现:

    MammalInt.java 文件代码:

    package animals; /* 文件名 : MammalInt.java */ public class MammalInt implements Animal{ public void eat(){ System.out.println("Mammal eats"); } public void travel(){ System.out.println("Mammal travels"); } public int noOfLegs(){ return 0; } public static void main(String args[]){ MammalInt m = new MammalInt(); m.eat(); m.travel(); } }

    然后,编译这两个文件,并把他们放在一个叫做animals的子目录中。 用下面的命令来运行:

    $ mkdir animals
    $ cp Animal.class  MammalInt.class animals
    $ java animals/MammalInt
    Mammal eats
    Mammal travel

    import 关键字

    为了能够使用某一个包的成员,我们需要在 Java 程序中明确导入该包。使用 "import" 语句可完成此功能。

    在 java 源文件中 import 语句应位于 package 语句之后,所有类的定义之前,可以没有,也可以有多条,其语法格式为:

    import package1[.package2].(classname|*);

    如果在一个包中,一个类想要使用本包中的另一个类,那么该包名可以省略。

    例子

    下面的 payroll 包已经包含了 Employee 类,接下来向 payroll 包中添加一个 Boss 类。Boss 类引用 Employee 类的时候可以不用使用 payroll 前缀,Boss 类的实例如下。

    Boss.java 文件代码:

    package payroll; public class Boss { public void payEmployee(Employee e) { e.mailCheck(); } }

    如果 Boss 类不在 payroll 包中又会怎样?Boss 类必须使用下面几种方法之一来引用其他包中的类。

    使用类全名描述,例如:

    payroll.Employee

    用 import 关键字引入,使用通配符 "*"

    import payroll.*;

    使用 import 关键字引入 Employee 类:

    import payroll.Employee;

    注意:

    类文件中可以包含任意数量的 import 声明。import 声明必须在包声明之后,类声明之前。


  • 相关阅读:
    75. Sort Colors
    101. Symmetric Tree
    121. Best Time to Buy and Sell Stock
    136. Single Number
    104. Maximum Depth of Binary Tree
    70. Climbing Stairs
    64. Minimum Path Sum
    62. Unique Paths
    css知识点3
    css知识点2
  • 原文地址:https://www.cnblogs.com/blog-wangke/p/14103038.html
Copyright © 2011-2022 走看看