JAVA-初步认识-第十二章-面向对象(包的概述)

一.

包的知识点是面向对象最后的知识点。

(都是对类的操作,那java源文件呢?)

什么是包?包有什么用?

介绍一下起源,同一个文件夹里面有两个.java的源程序。它们里面各自有一个class Demo类,在源文件编译的时候,分别会产生Demo类。但由于在同一个文件夹,因此只出现了一个Demo类。为了使两个Demo类都能够存在,下面开始介绍包的概念。

类文件的同名是很正常,但是内容都不一样。这样存储时,该怎么操作?要将两个类文件分开来存放,这就是包。包在文件夹,或者文件系统当中,或者windows里面,它就是体现在文件夹上。文件夹干嘛用的,分类管理文件用的。

包里面最有趣的地方就是,给类提供多层命名(名称)空间。什么意思呢?

两个Demo类,内容不一样,我们分开来存放。外界要调用Demo类时,不能确定调用哪一个Demo类。最好用A文件夹,B文件夹来区分两个Demo类。Demo类的前面会带有前缀名,这个前缀名就是用来区分这个类的。A文件夹的,B文件夹的,这就是名称空间。给名称多加了一级空间,换句话说,Demo.class这个名称就有所属了,所属于A或者所属于B。A或者B就是Demo.class这个名称的新一层空间,它所属的空间。以后就不存在Demo.class这个名称了,要么说A的Demo.class,要么说B的Demo.class,要不然听不懂。(也就是说要交代.class的全名)

在程序中如何定义一个包呢?定义包特别简单,通过关键字就可以完成了。包名有个规范,所有包名都小写。

定义一个包,包中有个类,类里面有主函数。要注意,包名的定义中有分号的存在。(它不是程序,因此不用花括号来运行,只用分号。)

但是在运行的过程中,出现了这样的问题,

运行出现了异常。报告显示,类名不存在,而且是错误的类名,后面还交代了是mypack/PackageDemo.

前面介绍了类名有所属(类名有所属,而不是源代码有所属),光写个packageDemo肯定不行,得要有前缀名,包名。

DOS依旧是报错的,但是和之前的有些不一样,没有说类名错误,只是说找不到。为什么呢?

包这种机制在java中是用package来表示,在文件系统中是用文件夹来体现。这就意味着packageDemo.class文件有自己所属的包。在这里的实际操作中是没有的。

那么就得建一个,文件夹就是包。(在java里面称作包)包在文件系统里面就体现为文件夹。

然后将packageDemo.class放入myclass包中。现在手动建立了一个文件夹,编译都不编译了,mypack里面有packageDemo.class了。

(在运行类文件之间,就要将类文件摆放到位,类文件是有所属的,不光是程序上的,还是文件系统上的。)

现在就不需要进到文件夹中运行类了,不用了,它俩是整体。

刚才讲述的是手动建立文件,现在换成自动的,而且这个包应该在编译时就要产生。你编译完,就知道你所属的地方在哪儿了(程序中写好了package)。哪能运行时,自己再去创建呢。

既然是编译,就要看编译器能够帮忙做这个事儿。

看怎么书写这个格式。以前在使用时,没有写<选项>,直接javac接的源文件。

在所有的帮助信息中,有一条可以帮助我们形成存放类文件的位置。

在当前目录下存放类文件,当前目录用点号加上一个空格来表示。

结果显示为类文件确实存放在当前目录下,而且还创建了一个文件夹,来存放这个类文件。(这个自动出现的文件夹,为什么叫mypackage呢?)javac是在编译源文件,所做的一切都是为了类文件服务的,包括生成类文件,和确定类文件所属,类的一切从javac就已经确定了。

运行程序也没有任何问题。(类和源代码所处的位置不一样。)

如果是多个程序的情况下,肯定不能是多个mypackage文件夹,该怎么书写呢?

能不能创建多级包目录呢?文件很多,存放在文件夹里面,文件夹很多,我们要分别存放,

对程序做一个修改,以便形成多级包的形式

包的书写形式很奇特,开头的书写没有花括号,只有分号。运行类文件时,一定要将路径写对写全。

时间: 2024-07-29 12:31:51

JAVA-初步认识-第十二章-面向对象(包的概述)的相关文章

JAVA-初步认识-第十二章-面向对象(包与包之间的访问)

一. 不同的包有很多,不同包之间的类该如何访问呢?之前没有包的时候都是默认包,当前这个目录就是默认包,它们都在同一个包里进行互相访问(不同类之间的访问,调用).现在看不同包里类与类之间的访问又是怎样的? 上一节的自动生成的包中,包名的确定是根据程序中自己书写的名字,来确定的.比如下图这样的,写成package mypack:那么自动形成的包名就是mypackage,而且在运行时会交代形成包的位置(错误,是编译时形成). 现在开始对实际的不同包里的类之间的交互,进行讲述. (源代码的位置在哪儿?不

“全栈2019”Java多线程第四十二章:获取线程与读写锁的保持数

难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多线程第四十二章:获取线程与读写锁的保持数 下一章 "全栈2019"Java多线程第四十三章:查询是否有线程在等待读写锁 学习小组 加入同步学习小组,共同交流与进步. 方式一:关注头条号Gorhaf,私信"Java学习小组". 方式二:关注公众号Gorhaf,回复&quo

Java学习笔记—第十二章 Java网络编程入门

第十二章  Java网络编程入门 Java提供的三大类网络功能: (1)URL和URLConnection:三大类中最高级的一种,通过URL网络资源表达方式,可以很容易确定网络上数据的位置.利用URL的表示和建立,Java程序可以直接读入网络上所放的数据,或把自己的数据传送到网络的另一端. (2)Socket:又称"套接字",用于描述IP地址和端口(在Internet中,网络中的每台主机都有一个唯一的IP地址,而每台主机又通过提供多个不同端口来提供多种服务).在客户/服务器网络中,当客

Java编程思想---第十二章 通过异常处理错误(中)

第十二章  通过异常处理错误(中) 12.4 创建自定义异常 我们不必拘泥于Java中已有的异常类型,Java提供的异常体系不可能预见所有的错误,所以可以自己定义异常类来表示程序中可能会遇到的特定问题:要自己定义异常类,必须从已有的异常类继承,最好是选择意思相近的异常类继承,建立新的异常类最简单的方法就是让编译器为你产生默认构造器,所以这几乎不用写多少代码: class SimpleException extends Exception { } public class InheritingEx

JAVA-初步认识-第十二章-面向对象(Jar包)

一. Java的程序我们已经把它封装在包里面了,java的程序很多的情况下,包很多的情况下,我们把它塞成一个文件.这样显得更为方便. 这个压缩工具有什么好处?可以把多个目录合成一个文件. Java中也有一个这样的打包工具,就是jar.可惜的是,jar并不是图形化界面的工具,它是DOS的工具. 怎么来操作jar工具, 有一个源程序就叫做JarDemo.java,现在对它进行编译.到目前实施的编译,都是带有包机制的. 最后运行了一下,类文件,没有问题,可以正常地输出结果.(这里要注意的就是在运行类文

JAVA-初步认识-第十二章-面向对象(导入import)

一. 讲到现在发现,有包不如没包,源程序中书写类名要写很长(类名的前缀包很多时).类文件的层次结构太多,包太多,显得很麻烦. 如果不愿意写这么长的名字,我们有一些解决办法.我们可以通过一个关键字来做这件事情,让你能实现相同的功能. 上图就是导入DemoA的包,我觉着导入就意味着将位置由所属的其它包,变为了本包的位置.这样可以更为方便的使用. 如果其他包里还有其他的类也要使用,那就继续往里面导入. 有人说,这样很麻烦,可以用简单的方法,就是通配符.统统都匹配的符号. 用*来代替所有. 现在pack

Java(第十二章)

第十二章 一.变量的作用域(有效的使用范围) 1.变量有2种 1.1成员变量(属性) 声明在类的里面,方法的外面 1.2 局部变量 声明在方法里面或for循环结构中 2.调用时的注意事项(初始值不同.作用域不同) 2.1 成员变量,有默认值 在当前类直接通过成员变量名调用:在其他类中,通过该类的对象名.属性(成员变量)名调用:成员变量名称在同一个类中是唯一的. 2.2 局部变量,没有默认值,必须先赋值再使用 局部变量,只能在当前的方法中使用,其他方法和其他类不能调用:在同一个方法中名称是唯一的,

张季跃 201771010139《面向对象程序设计(java)》第十二周学习总结

张季跃 201771010139<面向对象程序设计(java)>第十二周学习总结 第二部分:实验部分 1.实验目的与要求 (1) 掌握Java GUI中框架创建及属性设置中常用类的API: (2) 掌握Java GUI中2D图形绘制常用类的API: (3) 了解Java GUI中2D图形中字体与颜色的设置方法: (4) 了解Java GUI中2D图像的载入方法. 2.实验内容和步骤 实验1: 导入第9章示例程序,测试程序并进行代码注释. 2.实验内容和步骤 实验1: 导入第10章示例程序,测试

Java 第十二章 继承 笔记

Java 第十二章  继承 笔记 一.使用继承:     1)方便修改代码     2)减少代码量 二.super 继承object 类:super 访问父类的无参构造:super 指的是object 的无参构造.     例:子类调用父类:super.属性 / super.方法    注意:子类不能继承父类私有属性:得用set.get方法来调用:    super只能写在代码块的第一句:super只能调用非私有的方法:    super只能出现在子类的方法和构造方法中. 三.不能被继承的父类成