专业的JAVA编程教程与资源

网站首页 > java教程 正文

第5章 包机制(包联机制什么意思)

temp10 2024-09-08 09:29:22 java教程 14 ℃ 0 评论
  • 包机制
    • 包的定义和导入

为什么需要包?

windows树形文件系统

第5章 包机制(包联机制什么意思)

文档分门别类、易于查找和管理

使用目录解决文件同名冲突问题


如果存放2个同名的类而不冲突?

使用包:package

包对应java源文件的目录结果

包的定义

包的命名

1、包名有小写字母组成,不能以远点开头或结尾

package mypackage;

2、包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名

package net.javagroup.mupackage;

3、包名后续部分,依不同机构内部的规范不同而不同


包的作用

1、允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件

2、防止命名冲突,区分名字相同的类

3、有助于实施访问权限控制



import导包

1、为了使用不在同一包中的类,需要在java程序中使用import关键字导入这个类

import 包名.类名


例如:

import java.util.*; //导入util下所有包,*是通配符

import com.liergou.Book; //导入指定包中指定类


import导包

使用包的注意事项

1)一个类同时引用了两个来自不同包的同名类,必须通过完整类名来区分

每个包都是独立的,顶层包不会包含子包的类

package和import的顺序是固定的

1)package必须位于第一行(忽略注释行)

2)只允许有一个package语句

3)其次是import

4)接着类的声明




    • 系统常见包

在java众多的API中,目前使用较多的jar包如下表所示:


包名

内容概述

java.lang

提供java语言程序设计的基础类

java.util

提供处理日期、时间、随机数生成等各种使用工具的类

java.io

提供输入输出相关的类

java.net

提供实现网络操作相关的类

java.sql

提供使用访问并处理存储在数据库中的数据的API

java.nio

为输入输出提供缓冲区的类

java.text

提供处理文本、日期、数字和消息的类和接口

java.awt

包含用于创建用户界面和绘制图形图像的所有类

java。swing

提供一组与AWT功能相同的纯java的组件类

java.lang.*

java.lang包是java语言体系中其他所有类库的基础,已经内嵌到java虚拟机中,而且以对象的形式创建好了,所以我们在使用java.lang包时不需要再使用import将其导入,可以直接使用java.lang包中的所有类,以及直接引用某个类中的常量、变量和方法

lang包下常用的类

1)String:封装了与字符串类型相关的操作方法

2)class:用于描述正在运行的java应用程序中的类和接口的状态

3)classloader:用于加载类的对象

4)enum:用于定义枚举类型

5)math:用于实现基本数学运算

6)number:抽象类,是基础数据类型的父类

7)object:所有java类的根类


lang包下常用的类

1)package:封装了有关java包的实现和规范的版本信息

2)runtime:runtime类对象试java应用程序 与其运行环境相连接

3)stringbuffer:用于可变字符串的操作

4)stringbuilder:创建可变的字符串对象

5)System:封装了一些与java虚拟机系统相关的方法

6)Thread:创建和控制线程

7)ThreadGroup:创建和控制线程组

8)Throwable:定义了java中的所有错误或者异常的父类

9)Process:定义一个进程process对象,通过Runtime类中的exec方法启动该进程对象

lang包下常用的接口:

Appendable:用于追加字符串

Cloneable:用于复制类对象

Runnable:用于实现类对象具有线程功能

Comparable:用于类对象的排序


java.utli.*

包含集合框架,collection类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组、日期Date类、堆栈Stack类、向量Vector类等)集合类、事件处理横式、日期时间工具等各类常用工具包

java.io.*

java的和辛苦java.io提供了全面的IO接口,包括:文件读写、标准设备输出等。java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流、或者从输入流读入。


    • 创建jar包和引用

eclipse导入jar包

eclipse导出jar包



    • 访问权限控制

在java中,针对类、成员方法和属性提供了四种访问级别,分别是private、default、protected和public。

private(当前类访问级别):对于私有成员变量和方法,只有在本类中创建该类的对象时,这个对象才能访问自己的私有成员变量和类中的私有方法

default(包访问级别):类的成员变量和什么方法修饰符都没有,又叫包修饰符,只有类本省成员和当前包下类的成员可以访问

protected(子类访问级别):用protected修饰的成员变量和方法能被该类的成员以及其子类成员访问,还可以被同一个包中其他类的成员访问

public(公共访问级别):这是一个最宽松的访问控制级别,如果一个类或者类的成员被public访问修饰符,那么这个类或者类的成员能被所有的类访问,不管访问类与被访问类是否在同一包中。


修饰符/作用域

同一个类中

同一个包中

子类中

任何地方

private

可以




default

可以

可以



protected

可以

可以

可以


public

可以

可以

可以

可以

注意:

default和protected的区别

default修饰:本类可以访问 ,同一个包中其他类可以访问,同一个包中子类可以访问,不在同一个包中子类无法访问

protected修饰:本类可以访问,同一个包中其他类可以访问,同一个包中子类可以访问,不在同一个包中子类可以继承访问


private展示

private只能在本类中访问,因为那么是私有的,所有TestPerson没有访问权限

default

int是默认访问权限,所以同一个包中的其他类可以访问,当前的子类student在同一个包中,可以访问到age,不在同一个包中,是访问不到


protected修饰

age是protected修饰,本类中正常访问

不同包下的子类,不能通过父类对象直接访问

用protected修饰的属性,子类可以继承过来,不在同一个包下也是可以继承访问到的

用protected修饰的属性,虽然student是person的子类,但不在同一个包下,无法访问

public修饰

哪里都可以访问

本类可以访问

同一个包下,其他类也可以访问


同一个包下,子类也可以正常访问


其他包下,其他类可以访问

访问界别

private---》default---》protected---》public

--------访问控制级别由小到大-----》


编写代码时,如果没有特殊的考虑,建议这样使用权限

1)成员变量使用private,隐藏细节

2)构造方法使用public,方便创建对象

3)成员方法使用public,方便调用方法

  • 内部类
    • 普通内部类的定义
    • 局部内部类
    • 静态内部类
    • 匿名内部类

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表