`
incyanggan
  • 浏览: 34057 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Java菜鸟学习笔记--面向对象篇(十二):Package简单理解

阅读更多

什么是package?


  • 为了更好地组织类,Java提供了包机制。包是类的容器,用于分隔类名空间。如果没有指定包名,所有的示例都属于一个默认的无名包。
  • Java中的包一般均包含相关的类,例如,所有关于交通工具的类都可以放到名为Transportation的包中。
  • 程序中如果有package语句,该语句一定是源文件中的第一条可执行语句,它的前面只能有注释或空行。另外,一个文件中最多只能有一条package语句。


为什么要用package?


  • 避免软件开发中的的命名冲突问题



怎么打包?

1.如何定义package?

//把类放入包中
package me.yanggan.Print;
public class Test{

	public static void main(String[] args){

		System.out.println("Hello package!");
	}

}

2.包的命名规则


  • (全体小写,由域名定义)
  • Java包的名字都是由小写单词组成。但是由于Java面向对象编程的特征,每一名Java程序员都可以编写属于自己的Java包,为了保障每个Java包命名的唯一性,在最新的Java编程规范中,要求程序员在自己定义的包的名称之前加上唯一的前缀。由于互联网上的域名称是不会反复的,所以程序员一般采取自己在互联网上的域名称作为自己程序包的唯一前缀。 例如:net.frontfree.javagroup



3.如何编译标识包的类?



//可以直接编译
yg@yg-Ubuntu:~/Desktop/code$ javac Test.java
yg@yg-Ubuntu:~/Desktop/code$ javac -d . Test.java
//也可以带选项编译
-d 表示  Specify where to place generated class files(创建一个包目录)
. 表示当前路径
下图表示打包到目录后的编译后的类文件:


4.如何运行编译好的类文件?


//直接用java Test 运行程序会显示找不到类文件,因为Test不是类文件的全名


yg@yg-Ubuntu:~/Desktop/code$ java Test
Exception in thread "main" java.lang.NoClassDefFoundError: Test (wrong name: me/yanggan/Print/Test)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:788)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:447)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
	at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
//需要用 java me.yanggan.print.Test(这才是完整类名!)





怎么导入包?

只需要用 import 包名.类名;

//单个包的导入
import me.gander.Person;
import me.gander.Fahter;
//导入多个
import me.gander.*;
//*是通配符,就是导入me.gander目录下的所有类文件
















作者:YangGan
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).
分享到:
评论

相关推荐

    菜鸟Java葵花宝典2017-2018

    《菜鸟Java葵花宝典2017-2018》是一本专注于Java学习与面试的资源集合,旨在帮助初学者系统地掌握Java编程语言并为面试做好充分准备。这本书可能涵盖了Java的基础知识、进阶特性、设计模式以及常见面试问题等内容。...

    菜鸟的SAP自学学习笔记

    ### SAP自学学习笔记知识点概述 #### 一、配置总体框架 **1.1 系统环境** - **定义**: 指的是SAP系统的基本硬件和软件环境。 - **重要性**: 正确配置系统环境是确保SAP系统正常运行的基础。 - **涉及内容**: - ...

    JAVA菜鸟面试题库

    综上所述,面对JAVA面试,面试者应当注重技术基础的学习与积累,并在此基础上提升自己的综合能力,包括但不限于沟通技巧、团队协作能力等。同时,了解当前市场的薪资水平和公司招聘偏好有助于更好地定位自己,为未来...

    JAVA初学者笔记 使用JAVA理解逻辑基础-菜鸟入门(简单易懂)

    【JAVA初学者笔记:理解逻辑基础】 在编程领域,Java是一种广泛应用的高级编程语言,尤其适合初学者。本文将从基础出发,帮助你理解和掌握Java编程的基本概念。 首先,了解什么是程序。程序是一系列有序指令的集合...

    Java基础知识笔记详细版-菜鸟翻阅必备

    - 面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态三大特性。 - 平台无关性:通过Java虚拟机(JVM)实现了“一次编写,到处运行”的目标。 - 健壮性:具有自动垃圾回收功能,减少了内存泄漏等问题。...

    C++学习笔记- 面向对象 .md

    内容是C++面对对象的,目录大致来源于菜鸟文档的C++面向对象,笔记是参考各种文章以及菜鸟文档改编的,内容包含C++类和对象(类定义和对象定义,类成员函数,类访问修饰符,友元函数,内联函数,this指针,静态成员...

    java学习类网站,让你有菜鸟变高手

    ### Java学习资源汇总:从入门到精通 #### 引言 随着互联网技术的快速发展与迭代,Java作为一门经典的编程语言,依然占据着重要的地位。对于初学者或是希望提升技能的人来说,选择合适的在线学习资源至关重要。...

    大数据开发资源.docx

    - **学习途径**:建议使用在线教程(如菜鸟教程)进行入门学习。 **1.2 SQL基础** - **学习目标**:熟悉SQL语法,能够熟练地进行数据查询和简单的数据分析。 - **学习途径**:同样可以通过在线教程或书籍进行学习...

    Java学生管理系统——菜鸟

    - **面向对象编程**:Java是一种面向对象的语言,系统的核心会涉及类的设计,包括学生类、班级类、教师类等,每个类都会有自己的属性和方法。 - **控制结构**:如if-else语句、switch-case、for、while循环用于...

    20210808-银河证券-交通运输行业:菜鸟网络业绩表现持续向好,京东航空获批筹建.rar

    标题中的“20210808-银河证券-交通运输行业:菜鸟网络业绩表现持续向好,京东航空获批筹建”表明这是一份由银河证券发布的关于2021年8月8日交通运输行业的研究报告,重点提及了菜鸟网络的业务发展情况以及京东航空的...

    Android studio1.3.1从菜鸟到高手--第一季-视频-百度盘

    根据提供的文件信息,我们可以推断出这是一套关于Android Studio 1.3.1的教学视频资料,主要面向初学者到进阶用户。接下来,我们将基于这些信息深入探讨相关的知识点。 ### Android Studio 1.3.1简介 Android ...

    java学习1-3课笔记

    这份"java学习1-3课笔记"涵盖了初学者入门Java的基础知识,由张孝祥老师的课程内容整理而成,适合对编程感兴趣的菜鸟们作为学习参考资料。 1. **Java简介**: Java是由Sun Microsystems(现为Oracle Corporation的...

    基于Java语言教程&案例&相关项目资源

    4. **面向对象编程**: - **类与对象**:理解类与对象的基本概念及其关系,学会定义类和创建对象。 - **继承**:掌握类继承的概念,学会使用extends关键字实现继承。 - **封装**:了解封装的作用,掌握private、...

    C#制作麻将游戏源码,

    【标题】:“C#制作麻将游戏源码”指的是使用C#编程语言开发的一...通过分析和学习这样的源码,不仅可以加深对C#语言的理解,还能了解到游戏开发的基本流程和设计思路,对提升编程技能和理解面向对象编程有很大的帮助。

    新版Android开发教程+笔记十一--可视化UI设计DroidDraw

    ### 新版Android开发教程+笔记十一--可视化UI设计DroidDraw #### 1. DroidDraw简介 DroidDraw是一款强大的Android GUI可视化设计器,能够帮助开发者轻松创建复杂的Android Layout XML文件。这款工具基于Java Swing...

    java课程设计:基于java实现的单机五子棋游戏的源代码.zip

    - **面向对象编程**:Java是一种面向对象的编程语言,五子棋游戏的实现将涉及到类的设计,如棋盘类、棋子类、玩家类等。 - **图形用户界面(GUI)**:游戏通常需要一个友好的用户界面,Java中的Swing或JavaFX库...

    runoob菜鸟教程网站镜像

    - **适用对象**:主要面向编程初学者和技术爱好者。 - **应用场景**: - **自学**:利用runoob提供的资源进行自我提升。 - **备课**:教师可以借助这些资源准备课程材料。 - **项目参考**:开发者在项目开发过程...

Global site tag (gtag.js) - Google Analytics