网站建设维护概括总结,天津企业网络建站,新开传奇新服网,电子商务与网站建设课程一、包
1、简要介绍
在Java编程语言中#xff0c;包#xff08;Package#xff09; 是一种用来组织和管理类#xff08;Class#xff09;和接口#xff08;Interface#xff09;的机制。包为开发者提供了一种逻辑分组的方式#xff0c;使代码更加模块化、结构化和易于…一、包
1、简要介绍
在Java编程语言中包Package 是一种用来组织和管理类Class和接口Interface的机制。包为开发者提供了一种逻辑分组的方式使代码更加模块化、结构化和易于管理。
包在 Java 中叫包实际上就是一种文件夹也就是目录系统实际上我们可以在 JDK 中的 src.zip 压缩包中可以找到以下资源可以发现这些就是我们平时使用的包比如选中的 util 包 所以说包就是文件夹。
这样我们就对包的作用有了一个较为清晰的认知因为我们创建文件夹的目的就是管理文件所以在 Java 中包就是用来管理不同类和接口的。以及处理同名文件不同路径中的同名文件不会冲突在 Java 中不同包中的同名类也不冲突。与文件中的目录系统一样Java 中的包使用的也是这种树形的结构。
2、包的定义和声明
包是Java命名空间机制的一部分用于将相关的类、接口和子包进行分组以避免命名冲突和提高代码的可维护性以及控制类、接口等的访问范围。
在一个Java源文件的开头使用 package 关键字来声明它所属的包。例如
package com.example.myapp;
3、包名与路径
包名实际上就是路径但是中间不使用斜杠或者反斜杠分割而是使用 . 分隔。 这里我们创建了一个包然后我们可以到文件管理器中查看具体的路径 可以发现包名 com.pack1 对应的就是 com\pack1所以说包名实际上就是路径。
然后我们再在 com 中创建一个包 可以发现这种树形结构就是类似目录系统的。
4、包示例
上面我们创建了两个包这样我们就可以分别在这两个包中创建一些类了这些类即使同名也不会冲突。
然后我们分别在两个包中创建相同名字的类如下
package com.pack1;public class Person {String name;int age;public Person(int age, String name) {this.age age;this.name name;}public int getAge() {return age;}//...
}
和
package com.pack2;public class Person {String name;int age;double weight;public Person(double weight, String name, int age) {this.weight weight;this.name name;this.age age;}public double getWeight() {return weight;}//...
}
可以发现这两个 Person 类虽然类名相同但是内部字段实际是不一样的。通过包我们就可以实现这两个同名的类在不同包中管理而不冲突。
当我们要使用这两个包中的两个同名的类时就要对这两个类更详细的标注
public class Test {public static void main(String[] args) {com.pack1.Person person new com.pack1.Person(18,张三);com.pack2.Person person1 new com.pack2.Person(60,李四,19);}
}
这样我们才能分清对应的对象是哪个包中的类的实例。
而且我们还不能同时导入这个包中的 Person 类
import com.pack1.Person;
import com.pack2.Person;
这样会报错。
也可以只导入一个包对应的类这个类不用指定包名然后另一个类的包不导入指定包名
import com.pack1.Person;public class Test {public static void main(String[] args) {Person person new Person(18,张三);com.pack2.Person person1 new com.pack2.Person(60,李四,19);}
}
二、包的命名规则与规范
1、命名规则
包的命名规则
只包含数字(1-9)、字母大小写(A-Z,a-z)下划线(_)小圆点(.)不能以数字开头。也不能是关键字或保留字。
2、命名规范
一般是小写字母加小圆点构成。
结构是
com.公司名.项目名.模块
三、常用的包
1、java.lang
这个包是自动导入的这意味着你不需要使用 import 语句来导入这个包中的类。这是Java语言设计的一部分旨在提供最基本的功能所以对于这个包下的很多类 我们在创建程序后就可以直接使用。
2、java.util
java.util 包是Java标准库中用于提供实用工具类的包它包含集合框架、事件模型、日期和时间设施、国际化和其他实用工具类。以下是一些 java.util 包中的关键类和接口
集合框架包括 List、Set、Map、Queue 等接口以及它们的实现类如 ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap 等。日期和时间包括 Date、Calendar、GregorianCalendar、TimeZone 等类以及Java 8引入的新的日期和时间API如 LocalDate、LocalTime、LocalDateTime、ZonedDateTime 等。随机数生成Random 类用于生成伪随机数。国际化Locale 类用于表示特定的地理、政治或文化区域。事件模型Observer 和 Observable 类用于实现观察者模式。工具类如 Arrays 和 Collections提供了对数组和集合进行操作的静态方法。正则表达式Pattern 和 Matcher 类用于处理正则表达式。
3、java.awt
java.awtAbstract Window Toolkit包提供了用于构建图形用户界面GUI的类包括窗口、按钮、文本框等组件以及布局管理器和图形绘制工具。以下是 java.awt 包中的一些关键类
组件如 Frame、Panel、Button、Label、TextField、TextArea 等。布局管理器如 FlowLayout、BorderLayout、GridLayout、CardLayout 等用于管理组件在容器中的布局。事件处理如 ActionListener、MouseListener、KeyListener 等接口用于处理用户输入事件。图形和图像Graphics 类用于绘制图形Image 类用于处理图像。颜色和字体Color 和 Font 类用于设置组件的颜色和字体。
4、java.net
java.net 包提供了用于实现网络应用程序的类和接口包括用于处理TCP/IP和UDP/IP协议的类以及URL处理和网络通信的工具。以下是 java.net 包中的一些关键类
URLURL 和 URLConnection 类用于处理URL和与之相关的网络资源。Socket编程Socket 和 ServerSocket 类用于实现基于TCP的客户端和服务器端通信。DatagramSocket用于实现基于UDP的数据报通信。InetAddress用于表示IP地址。URIURI 类用于处理统一资源标识符。
四、导入包
1、如何导入包
1导入某个包中的某个类
一般情况下我们要导入某个包实际上是要使用这个包中的某个类所以一般是导入某个包中的固定类
例如如果你想在代码中使用 java.util.ArrayList你可以这样导入
import java.util.ArrayList;
然后你就可以在代码中直接使用 ArrayList 类而不需要每次都写上完整的包名。
2导入整个包
我们不仅可以导入一个包中的固定类也可以导入整个包。如果你需要使用一个包中的多个类或接口可以使用通配符 * 来导入整个包
例如导入 java.util 包中的所有类和接口
import java.util.*;
这样你就可以在代码中直接使用 java.util 包中的任何类或接口如 ArrayList、HashMap、Date 等。
2、导入包示例
导入 util 包中的 Arrays 类使用 Arrays 类中的静态方法 sort 排序数组
import java.util.Arrays;//导入java.util包中的Arrays这个类public class Test {public static void main(String[] args) {int[] arr {12,23,435,34,2};Arrays.sort(arr);for(int i : arr) {System.out.print(i );}}
}
运行结果 五、注意事项 package 语句必须是源文件中的第一条非注释语句。这意味着它必须位于所有 import 语句之前以及所有类或接口定义之前。 每个源文件只能包含一个 package 语句。也就是说这个文件只能有一个路径它的位置是唯一的。 import 应该在 package 和类的定义之间没有顺序要求可以有多句。就像下面这样 package com.pack1;import java.util.Arrays;//导入java.util包中的Arrays这个类
import java.util.Scanner;//导入java.util包中的Scanner这个类public class Test {public static void main(String[] args) {//...}
} 如果你创建了一个源文件放到了一个包中但是没有使用 package 语句那这样我们就不能在其他的源文件中使用这个类也不能导入这个类。
六、补充
在一个源文件中使用某个包中的某个类我们有两种方法
1、使用 import 语句
这是最常见的方法通过 import 语句你可以告诉编译器你想要使用的类来自哪个包。这样在源文件中就可以直接使用类的名称来创建对象或调用方法而不需要写出完整的包名。import 语句通常放在源文件的顶部package 语句之后。
例如如果你想使用 java.util 包中的 Arrays 类你可以这样做
import java.util.Arrays;//导入java.util包中的Arrays这个类public class Test {public static void main(String[] args) {int[] arr {1, 23, 64, 33, 32};Arrays.sort(arr);//排序System.out.println(Arrays.toString(arr));//转成字符串然后打印}
}
运行结果 2、使用完整的类名
如果你不想使用 import 语句或者你想使用的类与当前包中的另一个类有相同的名称你可以使用完整的类名来引用该类。完整的类名包括包名和类名用点.分隔。
例如如果你没有导入 java.util.Arrays你可以这样使用它
public class Test {public static void main(String[] args) {int[] arr {1, 23, 64, 33, 32};java.util.Arrays.sort(arr);//排序System.out.println(java.util.Arrays.toString(arr));//转成字符串然后打印}
}
运行结果