0
点赞
收藏
分享

微信扫一扫

Java-包和导入、范围修饰符、静态

一,包和导入

1.1 包

包:本质就是文件夹

问:为什么要创建不同的包?

答:因为一个项目中会涉及到很多功能模块、会涉及到很多相关技术,创建不同的包,就是在创建不同的文件夹,当我们将相关的类放入到对应的文件夹(包)之后,类会更加便于管理。

关键字:package

注:

  1. 每一类都应该在一个包中,并且这个类的第一行必须明确这个类的包路径(也就是明确这个类是属于哪个包的)

package com.qf.test;

public class Test{

}

  1. 一个类的完整路径(类全名、全类名)

com.qf.test.Test;


1.2 包的命名

规则:由数字、字母、下划线、美元符组成,数字不能开头

规范:全小写,用 “.” 来划分不同层级的文件夹,经常使用域名倒着写。

一般包名的定义:

  1. 实体类:entity、domain、pojo、vo
  2. 工具类:util
  3. 测试类:test
  4. 数据库相关:dao
  5. 业务逻辑层:business、service
  6. 控制层:controller


1.3 导入

导包:当一个类中使用到了其他包中的类时,需要将这个类的资源引入进来。

注:同包中其他类的访问是不需要导包的。

导入的关键字:import

import 完整包名.类名;

按需导入:

import java.util.*;
可以代替
import java.util.Random;
import java.util.Scanner;
...

注:java.lang 中的类不需要手动导入,会自动导入

二,范围(权限)修饰符

  1. public:公共的、公开的
  2. protected:受保护的
  3. [default]:默认的,在方法、成员变量前不定义任何范围修饰符
  4. private:私有的

注:范围修饰符只能修饰成员

public protected [default] private

本类中 可以 可以 可以 可以

同包不同类 可以 可以 可以 不可以

不同包的子类 可以 可以 不可以 不可以

不同包的无关类 可以 不可以 不可以 不可以

适用场景:

  1. public:对外提供公共方法
  2. protected:父类功能需要其他包中的子类进行功能扩展时
  3. [default]:只允许在同包中使用的成员
  4. private:属性的私有化,用于辅助当前类中其他功能的执行而不应该直接被外界访问的方法


三,静态

静态的关键字:static

3.1 静态的特点

  1. 当一个类被加载到内存时,静态成员会随着类的加载而加载
  2. 被静态所修饰的成员,不属于对象,而属于类
  3. 被静态所修饰符的成员可以直接使用类名进行调用
  4. 被静态所修饰的成员是整个类的共享数据
  5. 静态成员只能访问静态的,不能访问非静态的;非静态的成员既能访问静态的也能访问非静态的
  6. 静态成员不能访问 super 或者 this
  7. 静态只能修饰成员


3.2 静态代码块

格式:

/**
* @Author yqq
* @Date 2021/4/14 22:32
* @Version 1.0
*/
public class StaticDemo {
static {
System.out.println("我是帅逼,我优先,不管你加载几次,而且我只在你生命中出现一次");
}
public void method(){
System.out.println("我不帅,每次加载我,我都执行");
}

public static void main(String[] args) {
StaticDemo s=new StaticDemo();
StaticDemo t=new StaticDemo();

s.method();
t.method();
}
}
/**
* 我是帅逼,我优先,不管你加载几次,而且我只在你生命中出现一次
* 我不帅,每次加载我,我都执行
* 我不帅,每次加载我,我都执行
*/

特点:

  1. 静态代码块最优先执行
  2. 静态代码块只会执行一次

作用:

  1. 读取配置信息,加载配置内容
  2. 对静态属性进行一次性的赋值

适用场景:

  1. 共享数据

注:多个静态代码块会根据书写的先后顺序依次执行

3.3 静态常量



public static final 数据类型 变量名 = ;



举报

相关推荐

0 条评论