1. Package 概念
Package is a way of grouping related classes and interfaces together.
其实就是我们电脑系统中的文件夹,包里存放的是类文件和Java源文件。当类文件很多的时候,通常我们会采用多个包进行存放管理他们。
在项目中,我们将相同功能的类放到一个包中,方便管理。并且日常项目的分工也是以包作为边界。
类中声明的包必须与实际class文件所在的文件夹情况相一致,即类声明在a包下,则生成的.class文件必须在a文件夹下,否则,程序运行时会找不到类。
A. 声明格式
package 包名.包名.包名…;
如:黑马程序员网址itheima.com那么网址反写就为com.itheima
传智播客itcast.cn 那么网址反写就为 cn.itcast
注意:声明包的语句,必须写在程序有效代码的第一行(注释不算)
B. 导入包
在访问类时,为了能够找到该类,必须使用含有包名的类全名(包名.类名)。如:
java.util.Scanner scanner = new java.util.Scanner(System.in);
上面的写法很麻烦,我们可以通过import导包的方式来简化。可以通过导包的方式使用该类,可以避免使用全类名编写(即,包类.类名)。如:
import java.util.Scanner;Scanner scanner = new Scanner(System.in);
注意:
- Classes and Interfaces under the same package can be used directly, no need to import.
- Java cannot import classes with the same name and under different packages.
C. 静态导入 import static
如果本类中有和静态导入的同名方法会优先使用本类的静态资源。 ```java /*- JDK1.5新特性,静态导入
- 减少开发的代码量
- 标准的写法,导入包的时候才能使用
- import static java.lang.System.out; 最末尾,必须是一个静态成员 */ import static java.lang.System.out; import static java.util.Arrays.sort;
public class StaticImportDemo { public static void main(String[] args) { out.println(“hello”); int[] arr = {1,4,2}; sort(arr); } } ```
2. Modifiers 修饰符
A. Access Modifiers 访问修饰符
1) Access Modifiers on classes
- public
- package private(默认的) ==>Only visible to classes in its package.
2) Access Modifiers on attributes and methods
| | public | protected | default | private | | —- | —- | —- | —- | —- | | 同一类中 | ✅ | ✅ | ✅ | ✅ | | 同一包中(子类与无关类) | ✅ | ✅ | ✅ | | | 不同包的子类 | ✅ | ✅ | | | | 不同包中的无关类 | ✅ | | | |
B. final, static, abstract
| static | 静态修饰符 | 方法,成员变量 |
|---|---|---|
| final | 最终修饰符 | 类,方法,成员变量,局部变量 |
| abstract | 抽象修饰符 | 类 ,方法 |
我们编写程序时,访问修饰符一般放于所有修饰符之前,不同的权限修饰符不能同时使用。
同时,abstract与private,static, final不能同时使用;
C. 从修饰对象的角度总结:
1) 修饰类能够使用的修饰符:public, final, abstract
2) 修饰成员变量能够使用的修饰符:
public, protected, default, privatefinalstatic
3) 修饰构造方法能够使用的修饰符:
public, protected, default, private
4) 修饰成员方法能够使用的修饰符:
public, protected, default, privatefinalstaticabstract
