Java中的包和接口之间的区别
![Java编程中包的重要性](https://i.ytimg.com/vi/3rTOgJtE2sk/hqdefault.jpg)
内容
包和接口都充当容器。包和接口中的内容可以由类通过相应地导入和实现来使用。程序包和接口之间的基本区别在于,程序包包含一组类和接口,而接口则包含方法和字段。让我们借助比较表来研究其他差异。
- 比较表
- 定义
- 关键差异
- 结论
比较表
比较基础 | 配套 | 介面 |
---|---|---|
基本的 | 包是一组类和/或接口在一起。 | 接口是一组抽象方法和常量字段。 |
关键词 | 使用“ Package”关键字创建软件包。 | 使用“接口”关键字创建接口。 |
句法 | package package_name; 公共课程class_name { . (班级) . } | 接口interface_name { 变量声明; 方法声明; } |
访问 | 包可以进口 | 一个接口可以由另一个接口扩展,并由该类实现。 |
访问关键字 | 可以使用“ import”关键字导入软件包。 | 可以使用“实现”关键字来实现接口。 |
包装定义
包是各种类和接口的集合或组。包中的类在某种范围内或通过继承相互关联。您也可以创建程序包并将其用于程序。
创建一个包
要创建包,请按照以下步骤操作。
- 打开一个文件,然后在文件顶部声明包的名称,就像包名称是您要赋予包的名称一样。
- 接下来,定义一个要放入包中的类,并记住将其声明为public。
- 将文件另存为.java文件,然后编译该文件,然后为该文件获取“ .class”。
- 要为此文件创建一个包,使用的命令是“ javac -d”。 file_name.java。您可以看到在当前目录中创建了包含“ .class”文件的包。要将其放在父目录中,请使用“ javac -d”。 。 file_name.java”命令。
- 您也可以通过在文件顶部声明子包名称来创建子包。
打包Mypackage;公共类myclass {public void displayMypackage(){system.out.ln(“方法MyPack的类myMypackage的软件包Mypackage”); }
使用包装
在目录中创建或可用的软件包可以通过使用import语句在程序中使用。用于在程序中导入任何软件包的关键字是“ import”。 import语句可以用两种方式编写,也可以说有两种方法可以访问任何软件包。首先,如果要使用包中的特定类,则在“ import”关键字之后紧跟包名,然后是点运算符和要从包中使用的类名。其次,如果要使用软件包中包含的许多类,则import关键字后跟软件包名称,再跟点和“ *”运算符。
导入package_name。班级名称;或导入package_name。 *;
在上面的代码中,您可以看到*符号,该符号表示第二种方法将导入包中包含的所有类。
现在,让我们通过一个示例查看该软件包的用法。
导入Mypackage。 myclass {class TestMypackage {public static void main(string args){myclass ob1 = new myclass(); ob1.displayMypackage(); } //输出方法MyPack的类myclass的displayMypackage输出。
在上面的代码中,类TestMypackage已导入包Mypackage并使用了其displayMypackage()方法。
接口定义
接口是类的一种,但是在某种意义上不同之处在于接口中声明的方法是抽象的,这意味着仅声明方法而未定义方法。接口中的字段始终是public,static,final。这些字段必须在声明时进行初始化。接口声明的方法由根据其要求实现该接口的类定义。由于接口中的方法不执行任何功能,因此无需使用接口的任何对象。因此,无法为该接口创建任何对象。
该接口还可以继承另一个接口,但是,继承此类接口的类也必须实现继承的接口的所有方法。由于字段是在接口中声明时进行初始化的,因此接口中不需要构造函数,因此该接口不包含任何构造函数。让我们看一下创建和使用界面的示例。
界面区域{float pi = 3.14; float find_area(float a,float b){}类Circle实现Area {float find_area(float a,float b){return(pi * a * a); }类的形状{public static void main(string args){Area A = new Area();圆C =新圆(); A = C;浮动F =面积。 find_area(10,10); system.out.ln(“圆的面积为:” + F); }
在上面的代码中,我们创建了一个接口Area,而Circle类实现了接口Area。声明时,字段“ pi”已在接口中初始化。 Circle类根据其要求定义了类区域的抽象方法。
- 包是一组类和接口在一起,而接口是一组抽象方法。
- 包是使用关键字创建的 包 而使用关键字创建接口 接口.
- 如果要使用包内的类或接口,则在必须实现接口的同时导入包。
结论:
包和接口都是容器。包减少了代码的大小,因为我们只是导入要使用的类,而不是再次定义它。而接口减少了多重继承时的混乱,因为在多重继承的情况下,继承类不必决定应继承哪种方法的定义,而是可以定义自己的方法。