一,包和导入
1.1 包
包:本质就是文件夹
问:为什么要创建不同的包?
答:因为一个项目中会涉及到很多功能模块、会涉及到很多相关技术,创建不同的包,就是在创建不同的文件夹,当我们将相关的类放入到对应的文件夹(包)之后,类会更加便于管理。
关键字:package
注:
package com.qf.test;
public class Test{
}
com.qf.test.Test;
1.2 包的命名
规则:由数字、字母、下划线、美元符组成,数字不能开头
规范:全小写,用 “.” 来划分不同层级的文件夹,经常使用域名倒着写。
一般包名的定义:
1.3 导入
导包:当一个类中使用到了其他包中的类时,需要将这个类的资源引入进来。
注:同包中其他类的访问是不需要导包的。
导入的关键字:import
import 完整包名.类名;
按需导入:
import java.util.*;
可以代替
import java.util.Random;
import java.util.Scanner;
...
注:java.lang 中的类不需要手动导入,会自动导入
二,范围(权限)修饰符
注:范围修饰符只能修饰成员
public protected [default] private
本类中 可以 可以 可以 可以
同包不同类 可以 可以 可以 不可以
不同包的子类 可以 可以 不可以 不可以
不同包的无关类 可以 不可以 不可以 不可以
适用场景:
三,静态
静态的关键字:static
3.1 静态的特点
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();
}
}
/**
* 我是帅逼,我优先,不管你加载几次,而且我只在你生命中出现一次
* 我不帅,每次加载我,我都执行
* 我不帅,每次加载我,我都执行
*/
特点:
作用:
适用场景:
注:多个静态代码块会根据书写的先后顺序依次执行
3.3 静态常量