1.5java包

【定义】一组类的集合,一个包可以包含若干个类文件,还可以包含若干个包 (包是一级类的组织,和访问控制的机制)

包的作用

  • 将相关的源代码文件组织在一起
  • 类名的空间管理,利用包来划分命名空间,便可以避免类名冲突
  • 提供包一级的封装及存取权限

当程序规模比较大时,需要用到很多(域地域库)
时,可能会发生重名,为了避免重名,可以利用包来划分名字空间
(使得具有相关功能的类,放在同一个包中,更方便互相协调和配合)

包命名方式建议

  • 将机构Internet域名反序,作用包名的前导。
  • 若包名中有任何不可用于标识符的字符,用下划线替代
  • 若包名中的任何部分与关键字冲突,后缀下划线
  • 若包名中任何部分以数字或其他不能用做标识符起始的字符开头,前缀下划线

注意:包的名字必须是独一无二的的,小写字母

编译单元

Java中, 一个源代码文件,称为一个编译单元 (由三部分组成)
  1. 所属包的声明(省略,则属于默认包)
  2. import(引入)包的声明,用于导入外部类
  3. 类和接口的声明(主体)

//import是导入其他包的类
//一个编译单元(文件)中,只允许有一个public类
。public类名与文件名要相同,其他类是public类的辅助类(对public类提供服务,不对外提供服务),但是经过编译的每一个类,都会产生一个独立的.class文件

包的声明

  • 命名的包(Name Packages)
    例如:package Mypackage;
  • 默认包(未命名的包)
    不含有包声明的编译单元是默认包的一部分

包与目录的关系

  • 包名是文件夹名,即目录名
  • 目录名不一定是包名

用关键字package去命名一个包

做的包可能要发布出去,作为公共的类库,被别人使用(不要起一个简单的名字,可能引起起名冲突)

Java使用文件系统来存储包和类,包名也就是文件夹名(也就是目录名)

(目录名不一定是包名)

当用javac来编译源程序,如果遇到当前目录中没有声明的类,就会去找系统设置的环境变量,作为相对查找路径,按照包名的结构来查找(类)

如果用命令行编译,需要设置环境变量classPath

(如果用集成开发环境,集成开发环境会把这些设置好)

引入包

#为了使用其他包中提供的类,需要使用import语句引入所需要的类
#java编译器自动为所有程序引入包java.lang

import语句格式

import package1[.package2…].(classname|*)
#package1[.package2…]表明包的层次,对应文件目录

#classname指明所要引入的类名
#如果要引入一个包中的所有类,则可以使用星号(*)来代替类名

引入包用import语句,import后面有package
(包名可以是一级一级的目录

静态引用

Java5之前,通过类名使用类的静态成员

如果想在类外使用一个类的静态成员,需要用[类名].[方法名]。如果使用静态引用import语句,可直接使用其他类的静态成员

静态引入
单一引入:
引入类中某一个指定的静态成员 import static java.lang.Math.PI;
全体引入
引入类中所有的静态成员 import static java.lang.Math.* ;

例子

import static java.lang.Math.PI;
 public class Circle{
       int radius;
       public double circumferencea(){
             return 2*PI*radius;
       }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值