文章目录

  • 包的基本概述
  • 包的作用
  • 包的定义
  • 导包
  • 例题一
  • 例题二

包的基本概述

在编写 Java 程序时,随着程序架构越来越大,类的个数也越来越多,这时就会发现管理程序中维护类名称也是一件很麻烦的事,尤其是一些同名问题的发生。有时,开发人员还可能需要将处理同一方面的问题的类放在同一个目录下,以便于管理。

为了解决上述问题,Java 引入了包(package)机制,提供了类的多层命名空间,用于解决类的命名冲突、类文件管理等问题。

简单理解:不同的城市之间存在相同名字的小区,用城市名则可以区分这些重名小区,城市名就可以理解为上面的包,小区则可以看做是重名的类,通过这个前缀,解决了重名问题。

包的作用

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

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

包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类(后面的学习任务中会讲解访问权限)。

包的定义

Java 中使用 package 语句定义包,package 语句应该放在源文件的第一行,在每个源文件中只能有一个包定义语句,并且 package 语句适用于所有类型(类、接口、枚举和注释)的文件。定义包语法格式如下:

package 包名;
Java 包的命名规则如下:

包名全部由小写字母(多个单词也全部小写);
如果包名包含多个层次,每个层次用“.”分割;
包名一般由倒置的域名开头,比如 com.baidu,不要有 www;
自定义包不能 java 开头。
注意:如果在源文件中没有定义包,那么类、接口、枚举和注释类型文件将会被放进一个无名的包中,也称为默认包。在实际企业开发中,通常不会把类定义在默认包下。

例如:在一个 com.test 包下有一个名为 Test.java 的文件。

package com.test; // com.test 包下
public class Demo {
public static void main(String[] args) {
// 执行语句
}
}

导包

在之前的学习任务中,我们简单讲解了 Java 的导包,这里为大家详细介绍。

在没有导包之前,我们如果想要实例化 Scanner 对象,语法如下:

java.util.Scanner scanner = new java.util.Scanner(System.in);
为了简化编程,Java 引入了 import 关键字,import 可以向某个 Java 文件中导入指定包层次下的某个类或全部类。import 语句位于 package 语句之后,类定义之前。一个 Java 源文件只能包含一个 package 语句,但可以包含多个 import 语句。

使用 import 导入单个类的语法格式如下:

import 包名+类名;
上面语句用于直接导入指定类,例如导入前面的 java.util.Scanner 类,代码如下:

import java.util.Scanner;
此时,实例化 Scanner 对象的语法如下:

Scanner scanner = new Scanner(System.in);
使用 import 语句导入指定包下全部类的用法按如下:

import 包名.;
上面 import 语句中的星号(
)只能代表类,不能代表包,表明导入包下的所有类。

注意:使用星号(*)可能会增加编译时间,特别是引入多个大包时,所以明确的导入你想要用到的类是一个好方法,需要注意的是使用星号对运行时间和类的大小没有影响。

通过使用 import 语句可以简化编程,但 import 语句并不是必需的,如果在类里使用其它类的全名,可以不使用 import 语句。

Java 默认为所有源文件导入 java.lang 包下的所有类,因此前面在 Java 程序中使用 String、System 类时都无须使用 import 语句来导入这些类。但对于前面介绍数组时提到的 Arrays 类,其位于 java.util 包下,则必须使用 import 语句来导入该类。

例题一

// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 声明一个名为 com.pojo 的包
package com.pojo;
public class Student {public static String[] info(){// 实现返回所有学生的功能,在该方法中定义一个 String 数组String[] namelist = {"小明","小红","小强","小刚"};// 返回该数组return namelist;}
}
/********** End **********/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 声明一个名为 com.test 的包
package com.test;
// 导入 Student 类
import com.pojo.Student;
public class Test {public static void main(String[] args) {System.out.println("学生信息如下:");for(String str: Student.info()) {System.out.println(str);}}
}
/********** End **********/

例题二

// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 声明一个名为 com.model 的包
package com.model;
// 定义一个 Movie 的公开类
public class Movie {// 该类具有电影名称、电影类别、电影时长、地区等属性(都是字符串类型、私有)private String movieName; // 电影名称private String movieType;private String movieTotal;private String movieArea;// 定义获取和设置电影属性的方法public String getMovieName() {return movieName;}public void setMovieName(String movieName) {this.movieName = movieName;}public String getMovieType() {return movieType;}public void setMovieType(String movieType) {this.movieType = movieType;}public String getMovieTotal() {return movieTotal;}public void setMovieTotal(String movieTotal) {this.movieTotal = movieTotal;}public String getMovieArea() {return movieArea;}public void setMovieArea(String movieArea) {this.movieArea = movieArea;}// 定义获取电影信息的方法,无返回值public void info(){System.out.printf("电影名称:%s,电影类别:%s,电影时长:%s,地区:%s。",movieName,movieType,movieTotal,movieArea);}
}
/********** End **********/
// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/
// 声明一个名为 com.test 的包
package com.test;
// 导入 Movie 类
import com.model.Movie;
// 导入 java.util.Scanner 类
import java.util.Scanner;
// 定义一个公开的 Test 类
public class Test {// 定义主方法public static void main(String[] args) {// 实例化 Movie 对象Movie movie = new Movie();// 将键盘四次输入的电影信息赋值给 Movie 对象Scanner scanner = new Scanner(System.in);movie.setMovieName(scanner.next());movie.setMovieType(scanner.next());movie.setMovieTotal(scanner.next());movie.setMovieArea(scanner.next());// 调用获取 Movie 信息的方法movie.info();}
}
/********** End **********/

java类和对象之包的定义相关推荐

  1. 杨校老师课堂之Java类与对象、封装、构造方法

    杨校老师课堂之Java类与对象.封装.构造方法 本篇文章内容如下: 面向对象 类与对象 三大特征--封装 构造方法 教学目标 能够理解面向对象的思想 能够明确类与对象关系 能够掌握类的定义格式 能够掌 ...

  2. java类和对象程序_Java类与对象程序设计基础

    Java类与对象程序设计基础 一.实验目的: 通过编制一个独立应用程序,使得学生掌握Java的系统所提供类的引用方法:通过编制一个完整的应用程序,使得学生对Java的应用程序的基本构成和基本算法熟练掌 ...

  3. java类和对象的基础(笔记)

    在Java类的设计中,有时希望一个类在任何时候只能有一个实例.这时可以将该类设计为单例模式(singleton).要将一个类设计为单例模式,需要把类的构造方法的访问修饰符声明为private,然后在类 ...

  4. Java类和对象(如何理解类和对象)

    Java类和对象 一.什么是对象? 1.什么是对象的属性? 2.什么是对象的行为 二.什么是类? 三. 类和对象的关系 四.类的定义 1.类的定义格式 2.类的定义示例 五.对象的使用 1.对象的创建 ...

  5. java类和对象在内存的表现形式

    Java内存分配与管理是Java的核心技术之一,不管学习任何一门语言,我们要知其然,知其所以然,本文主要分析下Java中类和对象在内存中的表现形式,方便我们对其有更深了解.一般Java在内存分配时会涉 ...

  6. Java私塾跟我学系列——JAVA篇 第四章Java类和对象

    教学目标: i面向对象基础 i掌握对象的三大特性 i掌握Java类的构建 i掌握如何使用Java类 i理解引用类型 i理解按值传递和按引用传递 i深入理解变量 i掌握包装类 i理解类型转换 i理解Ja ...

  7. 实验2 Java类和对象的设计

    实验题目:Java类和对象的设计 一.上机目的和要求 理解面向对象的编程思想.类与对象的概念: 加深理解封装性.继承性和多态性: 掌握this.super.final.static等关键字的使用: 掌 ...

  8. java类与对象实验_JAVA类与对象实验报告

    <JAVA类与对象实验报告>由会员分享,可在线阅读,更多相关<JAVA类与对象实验报告(6页珍藏版)>请在人人文库网上搜索. 1.面向对象程序设计实验报告实验三.类与对象(1) ...

  9. Java类和对象初始化

    首先对Java 较为深层技术提几个问题(包含class 文件格式的了解): 1.类的访问权限在class二进制文件中怎么体现的? 2.类中static 区域 怎么初始化的,时间,顺序,特点是什么? 3 ...

最新文章

  1. 如何定制一款12306抢票浏览器——处理预订页面和验证码自动识别功能
  2. adb安装apk是出现INSTALL_FAILED_INSUFFICIENT_STORAGE
  3. 数组中a和a 的区别?
  4. python语法速成方法_30分钟学完Python基础语法
  5. 健身品牌Shape获得数千万元Pre-A轮融资,清流资本领投
  6. Hibernate 系列教程9-自关联
  7. PoPo数据可视化第8期
  8. 前端:JS/23/JS内置对象(String对象,Array对象,Date对象,Boolean对象,Number对象,Math对象),实例:求圆的面积,求直角三角形
  9. SqlServer中 Partition By 的使用
  10. ArrayList删除的问题
  11. 超有趣的灵魂都在看什么?
  12. 前端开发-技术设计文档编写规范
  13. 干货 | 推荐几款实用的思维导图工具
  14. CROSS APPLY 和 OUTER APPLY 函数
  15. Fedora 30 将默认启用 DNF-best 模式
  16. 电影票的c语言程序,不知道电影票在小程序也能购买的?分享3款购票小程序赶紧来看看!...
  17. nmap下载安装介绍使用
  18. 网络连接有个感叹号的原因及解决方法
  19. Unity UGUI屏幕自适应
  20. 华为 Python:初级能力测评

热门文章

  1. 关于GPS坐标转换(一)
  2. 蓝桥杯试题 算法提高 扶老奶奶过街(C语言)
  3. php模拟苹果手机访问,php 使用curl模拟ip和来源进行访问的实现方法
  4. Pandas+Numpy 数据中空值的处理操作:判断、查找、填充及删除
  5. MATLAB自相关矩阵计算方法
  6. 亚马逊运营最常见家50问(上)
  7. 国乒28人出战匈牙利公开赛 新增混双项目受关注
  8. I/Q信号解调分析过程
  9. 【转载】Android应用之——百度地图定位返回4.9E-324的解决方案
  10. 计算机专业研究生应该怎么读