Java程序设计 包

145 阅读3分钟

这是我参与2022首次更文挑战的第5天,活动详情查看:2022首次更文挑战

Java程序设计 包

包的概念

包可以实现程序的分割保存,便于开发和维护

包(package)是在使用多个类或接口时,为了避免名称重复而采用的一种措施

包的定义

package 包名称.子包名称;
package org.test;
public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}

本程序将Hello类放在一个自定义的包中,这样一来在程序编译后就必须将*.class文件保存在指定的目录中

在程序打包编译后会有相应的包结构存在,而在使用java命令执行程序时,需要编写上完整的“包.类名称”

包的导入

使用import语句来导入被调用的其他包中的程序类

定义一个类

package org.test;

public class Mess {
    public void print(){
        System.out.println("导入包测试");
    }
}

定义时必须使用public class声明

public class:文件名称和类名称保持一致,在一个 * .java文件中只能存在一个public class定义,如果一个类要想被外部的包所访问必须定义为public。

class:文件名称可以和类名称不一致,在一个 * .java中可以同时存在多个class定义,并且编译完成之后会形成多个*.class文件,使用class定义的类只能够在一个包中访问,不同包无法访问。

导入包

package org.test;
import org.test.Mess;
public class Hello {
    public static void main(String[] args) {
        new Mess().print();
    }
}

image-20220119224719329

静态导入

定义一个静态方法组成的类

package org.test;
public class Mess {
    public static void print(){
        System.out.println("导入包测试");
    }
}

使用静态导入

package org.test;
import static org.test.Mess.*;

public class Hello {
    public static void main(String[] args) {
        print();
    }
}

image-20220119232719038

系统常见包

名称作用
java.lang基本包
java.lang.reflect反射机制的包
java.util工具包
java.text提供一些文本的处理类库
java.sql数据库操作包
java.net完成网络编程
java.io输入、输出处理
java.awt包含构成抽象窗口工具集的多个类
java.swing用于建立图形用户界面
java.applet小应用程序开发包

4种访问控制权限

范围privatedefaultprotectedpublic
同一包的同一类
同一包的不同类
不同包的子类
不同包的非子类

对于访问控制权限,握住以下的原则即可

属性声明以private为主

方法声明以public为主

对于封装性实际上是有3种表示方式:private、default、protected

  • private属于私有访问权限,可以用在属性的定义、方法的声明上,一旦使用了private关键字声明,则只能在本类中进行访问。
  • default(默认)访问权限如果一个类中的属性或方法没有使用任何的访问权限声明,则就是默认的访问权限,默认的访问权限可以被本包中的其他类所访问,但是不能被其他包的类所访问。
  • protected属于受保护的访问权限。一个类中的成员如果使用了protected访问权限,则只能为本包及不同包的子类所访问。
  • public属于公共访问权限。一个类中的成员使用了public访问权限,就可以在所有类中被访问,不管是否在同一个包中。

Java命名规范

  • 类:所有单词的首字母大写
  • 方法:第1个单词的首字母小写,之后每个单词的首字母大写
  • 属性:第1个单词的首字母小写,之后每个单词的首字母大写
  • 包:所有单词的字母小写
  • 常量:所有单词的字母大写