java-修饰符
访问修饰符:
给程序中某个元素(如方法,变量等)定性,就可以使用修饰词
1 | package com.tests; |
这个程序中使用了大部分常见的修饰词.
package:
用来指示程序所在的包,管理文件,区分类全名.
书写位置:程序最顶端,即第一行第一句.
命名规则:域名后缀.域名.项目名.模块名;
1 | package com.tests |
import:
用来导入所需要的程序,若使用import声明了所需要的类,有利于减少工作量
1 | import java.util.Arrays; |
引入了java.util
包下Arrays类;(包名就是文件夹名,类名就是包下的.java
文件)
访问权限修饰符
用来控制相应元素的可见范围和访问权限,
- public
- protected
- default(默认)
- private
修饰类:
外部类:public
befault
可用;
内部类:所有(内部类,同一个源文件下不同文件名的类)
修饰成员变量:
所有,可见范围不同
本类中 | 同一个包中 | 不同包子类 | 不同包的其他类中 | |
---|---|---|---|---|
public | 可见 | 可见 | 可见 | 可见 |
protected | 可见 | 可见 | 可见 | 不可见 |
default | 可见 | 可见 | 不可见 | 不可见 |
private | 可见 | 不可见 | 不可见 | 不可见 |
修饰方法:
可见性同修饰成员变量,但是有不同点
父类的私有方法子类不能重写
应尽量使用private修饰成员变量,可以提高代码的安全性.
为了在其他类中可以对成员变量重新设置值获取值,我们可以定义相应成员变量的共有方法进行操作.即Get/Set方法
1 | private String name; |
final:
修饰类:该类不能有子类,即不能被继承.
修饰成员变量:可以直接初始化,也可以在构造器初始化,但是不能再次赋值.
修饰局部变量:只能初始化一次.
修饰方法:不能在子类中被重写,只能被使用
static:
意思是静态的.
修饰成员变量:
- 不属于对象的数据结构
- 属于类的,通常使用类名调用.
- 静态变量与类的信息一起存在方法区中,只存在一份,是对象的公共资源.
修饰方法:
通常的方法:都是与具体对象有关系,即对象的方法(行为)
static方法,与具体对象无关,是类的方法,常用类名去调用, 常与参数有关系
static
方法内因为无法使用this
关键字,所以不能直接访问非静态成员变量与方法.静态方法的作用:一般用于设计成工具方法和工厂方法.
工具方法:
Arrays.sort();
Math.random();
修饰代码块
1 | static{ |
- 存储在方法区中,只加载一次,与对象无关.
- 执行时机为加载类的信息期间,指的是在实例化之前加载.
- 通常用于加载程序中所需的静态资源,如图片,音频等
运行时机:实例化之前执行,每次实例化之前都会执行一次
下面写一个实例,体会一下static
的用法:
1 | public class StaticTest { |
运行之后的结果为:
1 | 静态代码块中的内容 |
可以看到静态代码块中的内容被最先执行,被定义为static的变量num每次new之后都会+1,且静态方法只能由类名调用.
常量:
一般是一些特殊的值,一般使用成员变量,用类名调取,声明时必须初始化
修饰词为public static final 变量名
命名时字母全部大写.
如:Math.PI
;圆周率