java -- 包

 

  • 包的概念

当前情况下:所有的类都是直接写在src中的

存在的问题:

  1. 在src中有很多的类,不利于查找
  2. 团队开发中如果不同功能模块存在同名的类,则不能在同一个目录中共存

(即在同一个目录中不能存在同名的文件)

  1. 包的作用

(1)解决命名冲突问题,在指定一个类的类名的同时,指定一个包名

语法:

package 包名;

注意:

  1. package语句一定要放在类声明的第一句话
  2. package语句在一个类中只能有一个(因为包本质其实就是文件目录,所以对于一个文件而言,它只能属于一个目录,因此不能出现多条package语句)

(2)可以将功能相似或相近的类放在一个包中,方便组织和维护

(3)包可以具有层次结构,可以将类的划分的尺度更细,按照功能、模块等可以将类组织在不同的包中

(4)限定了包级别的访问权限

https://www.cnblogs.com/DreamDrive/p/4641676.html(表格很重要!!!)

  1. 包的命名规范

回顾:

一切命名都不要用拼音

  1. 变量:见名知意、驼峰命名法
  2. 方法:见名知意、驼峰命名法、使用动词或动词词组、参数不宜超过4个
  3. 类名:见名知意、首字母大写,其余遵循驼峰命名法
  4. static final常量:

/**
 * 常量类:
 * 常量:固定的值,无法修改的值
 */
public class AppConstant {
    /**静态常量的命名中,所有字母全部大写**/
    /**
     * 如果常量名由多个单词构成,每个单词之间使用_隔开,即蛇形命名法
     **/
    public static final String ACCESS_TOKEN = "12345678";
    public static final String[] strs = new String[2];

    public static void main(String[] args) {
        //静态常量体现了static的特性,即可以通过类名直接访问
        System.out.println(AppConstant.ACCESS_TOKEN);
        //静态常量也体现了final的特性,即不能就行修改
        //AppConstant.token = "123";
        System.out.println(AppConstant.ACCESS_TOKEN);
        //strs[0]="Hello"修改的是数组在堆内存中下标为0的元素对应的值
        //strs=new String[3];相当于将原来的strs的地址进行了改变,而strs是以final修饰的,所以无法改变
        strs[0] = "Hello";
//        strs=new String[3];

    }

    public void method() {
        /**
         * 对于一些变化不大的定值,如果直接写在代码中,不利于维护,称为“魔鬼数字”,简称“魔数”
         * 可以将这些值直接定义为常量,调用过程中如果值发生了变化,只需要修改常量的直就行了
         */
        System.out.println("token:" + ACCESS_TOKEN);
        System.out.println("token:" + ACCESS_TOKEN);
    }

    public void method1() {
        System.out.println("token:" + ACCESS_TOKEN);
        System.out.println("token:" + ACCESS_TOKEN);
    }
}

包的命名规范:

(1)包可以有层次结构,通过点儿去分割包的名字来形成包的层次结构

(2)包中的所有字母全部小写,不能出现关键字和保留字

(3)包的命名通常包含:域名反写+项目名+模块名+组件名+……

  1. 包的导入
  1. 为什么要导入

因为在一个类中,要使用另外一个包中提供的类,此时就要导入这个包

  1. 语法:

import 包名+类名;

注意:

a.import语句出现在包声明之后,类声明之前

b.所有java.lang包下的类是自动导入的,无需手动导入

c.也可以通过全局限定名(包名+类名)来导入类,可以省略import语句,但是太麻烦。

java.util.Scanner sc = new java.util.Scanner(System.in);

//java.util.Date
Date date1 = new Date();
//java.sql.Date
//如果要使用不同包下的同名类,则应该指定全局限定名
java.sql.Date date2 = new java.sql.Date(123);

d.不要通过*导入一个包下所有的类,例如

import java.util.*;

要用什么类就导入什么类

猜你喜欢

转载自blog.csdn.net/weixin_43727372/article/details/90080154