常量
1.常量是使用了public static final修饰的成员变量,必须有初始化值,而且执行的过程中其值不能被改变。
2.常量的作用和好处:可以用于做系统的配置信息,方便程序的维护,同时也能提高可读性。
常量命名规范:英文单词全部大写,
多个单词下划线连接起来。
public class Constant {
public static final String SCHOOL_NAME="传智教育";
public static final String LOGIN_NAME= "admin";
public static final String PASS_wORD ="123456"";
常量的执行原理
1.在编译阶段会进行“宏替换”,把使用常量的地方全部替换成真实的字面量。
2.这样做的好处是让使用常量的程序的执行性能与直接使用字面量是一样的。
package com.itheima.d4_constant;
public class Test {
/**
常量:public static final修饰的成员变量,注意:名称全部英文大写,多个单词下划线连接。
*/
public static final String SCHOOL_NAME = "黑马程序员";
public static final String COUNTRY = "中国";
public static final int NUMBER = 10000;
// 常量:充当配置信息
public static final String SCHOOL = "传智教育中心";
public static final String LOGIN_NAME = "admin";
public static final String PASS_WORD = "123456";
public static void main(String[] args) {
// 目标:认识常量,知道常量的作用。
// SCHOOL_NAME = "黑马"; // 第二次赋值。
System.out.println(SCHOOL);
System.out.println(SCHOOL);
System.out.println(SCHOOL);
System.out.println(SCHOOL);
}
}
案例说明:
现在开发的超级玛丽游戏需要接收用户输入的四个方向的信号(上下左右),以便控制玛丽移动的方向。
选择常量做信息标志和分类:
代码可读性好,实现了软编码形式。
package com.itheima.d4_constant;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class ConstantDemo_02 {
public static final int UP = 1;//上
public static final int UNDER = 2;//下
public static final int LEFT = 3;//左
public static final int RIGHT = 4;//右
public static void main(String[] args) {
// 目标:理解常量的另外一个作用:做信息的标志和分类。
// 模拟:控制玛丽的移动:上下左右。
// 桌面编程
// 1、创建窗口
JFrame win = new JFrame("超级玛丽");
win.setSize(300, 200);
// 2、设计一个面板(桌布)
JPanel jPanel = new JPanel();
win.add(jPanel);
// 2、放置几个按钮
JButton b1 = new JButton("上");
jPanel.add(b1);
b1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 控制玛丽往上跳
move(UP);
}
});
JButton b2 = new JButton("下");
jPanel.add(b2);
b2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 控制玛丽往下蹲
move(UNDER);
}
});
JButton b3 = new JButton("左");
jPanel.add(b3);
b3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 控制玛丽往左走
move(LEFT);
}
});
JButton b4 = new JButton("右");
jPanel.add(b4);
b4.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// 控制玛丽往右走
move(RIGHT);
}
});
win.setLocationRelativeTo(null);
win.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
win.setVisible(true);
}
public static void move(int orientation){
// 控制玛丽移动
switch (orientation) {
case 1:
System.out.println("玛丽往↑飞了一下~~");
break;
case 2:
System.out.println("玛丽往↓蹲了一下~~");
break;
case 3:
System.out.println("玛丽往←跑了一下~~");
break;
case 4:
System.out.println("玛丽往→跑了一下~~");
break;
}
}
}