一、常量是什么?
常量是使用了public static final修饰的成员变量,必须有初始值,而且执行过程中其值不能改变。
常量的作用和好处:可以用于做系统的配置信息,方便程序的维护,同时也能提高可读性。
二、常量命名规范
英文单词全部大写,多个单词用下划线连接起来。
public class Constant {
public static final String SCHOOL_NAME = "BILIBILI大学";
public static final String USER_NAME = "admin";
public static final String PASS_WORD = "123456";
}
三、常量的执行原理
在编译阶段会进行“宏替换”,把使用常量的地方全部替换成真实的字面量。
这样做的好处是让使用常量的程序的执行性能与直接使用字面量是一样的。
四、常量概述总结
常量是什么?什么作用?
- 常量是使用了public static final修饰的成员变量,必须有初始值,并且有仅能赋值一次,执行过程中不可改变;
- 可以用作于做系统的配置信息,一处更改,处处生效:方便程序的维护。同时也能提高可读性。
五、常量做信息标志和分类
案例说明:
现在开发的超级玛丽游戏需要接收用户输入的四个方向的信号(上下左右),以便于控制玛丽的移动方向。
选择常量做标志和分类:
代码可读性好,实现了软编程形式。
import javax.swing.*;
import java.awt.event.ActionEvent;
public class ConstantDemo2 {
//1、定义4个常量,分别代表玛丽的移动:上下左右
public static final int UP = 1; // 上
public static final int DOWN = 2; // 下
public static final int LEFT = 3; // 左
public static final int RIGHT = 4; // 右
public static void main(String[] args) {
// 2、创建一个窗口对象(桌子)
JFrame win = new JFrame();
// 3、创建一个面板对象(桌布)
JPanel panel = new JPanel();
// 4、把桌布垫在桌子上
win.add(panel);
// 5、创建四个按钮对象:上下左右
JButton btn1 = new JButton("上");
JButton btn2 = new JButton("下");
JButton btn3 = new JButton("左");
JButton btn4 = new JButton("右");
// 6、把按钮对象添加到桌布上
panel.add(btn1);
panel.add(btn2);
panel.add(btn3);
panel.add(btn4);
// 7、显示窗口
win.setLocationRelativeTo(null);
win.setSize(300, 400);
win.setVisible(true);
// 8、点击按钮,控制玛丽移动方向
btn1.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
move(UP); // 让玛丽往上飞
}
});
btn2.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
move(DOWN); // 让玛丽往下蹲
}
});
btn3.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
move(LEFT); // 让玛丽往后跑
}
});
btn4.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
move(RIGHT); // 让玛丽往前跑
}
});
}
// 9、玛丽移动功能
public static void move(int flag) {
switch (flag) {
case UP:
System.out.println("玛丽往上飞了一下~~~");
break;
case DOWN:
System.out.println("玛丽往下蹲了一下~~~");
break;
case LEFT:
System.out.println("玛丽往后跑了一下~~~");
break;
case RIGHT:
System.out.println("玛丽往前跑了一下~~~");
break;
}
}
}