常量与变量
一、变量
1.什么是变量(Variable)?
概念:
在程序的运行过程中数值可变
通常用来记录运算中间结果或保存数据。
变量的特点
必须先声明后使用
2.变量的声明
声明变量是一个完整的语句,用分号结束
变量四要素:名字,类型,值,作用域
语法格式:类型 变量名 [=初值][,变量名[=初值]…]
int min=10; //将10赋值给整形变量min min=20; //变量min的值变为20,原来的值10将被擦除掉
short age,length; //遍历了两个短整型的变量,将会为它们分配两个字节的空间
boolean flag; //定义了一个布尔类型的变量flag,并为它分配一个字节的空间
char status=‘A’; //定义了一个字符型的变量status,它的初值是A
3.变量的作用域与生存周期
范例
class ScopeExample { public static void main(String args[]) { int x=10; if (x == 10) { int y = 20; System.out.println( x + " " + y); x = y * 2; } System.out.println("x is " + x); } }
程序块(block):被包括在一对大括号{ }中;
如:上方代码有三个花括号,就有三个程序块
一个程序块定义了一个作用域
变量的作用域是声明它的语句所在的语句块
如:
{ int y = 20; System.out.println( x + " " + y); x = y * 2; } y = 100; /*此处报错!*/
加入 y = 100; /*此处将会报错!*/。y不在作用域就失效了。
作用域规则为封装提供了基础
二、常量
1.什么是常量?
常量一经建立,在整个程序运行过程中都不会改变
2.常量的声明
与变量形式基本一样,前面加关键字final
建议:
常量标识符全部用大写字母表示
从常量名可知常量的含义,具有可读性
使用常量的好处:一改全改,增强可维护性
声明常量同变量一样 ,需要关注数据类型
如:final double PI=3.14;
final int MIN=10; 对的
MIN=20; 错的
int min=10; 对的
min=20; 对的
3.有哪些类型的常量呢?
3.1布尔常量:包括true和false,代表真和假
3.2字符常量:’a’,’9’
3.3整型常量:分字节常量、短整型常量、一般整型常量和长整型常量。
表示形式: 十进制,如12,-314; 八进制整数,要求以0开头,如012 ; 十六进制数,要求0x或0X开头,如0x12
实例:
final int TOTAL=0x34A;
final long MAX=0346L;
final byte MIN=39;
final short SCORE=120;
3.4浮点常量
分单精度浮点常量和双精度浮点常量两种
十进制数形式,必须含有小数点,如3.14 314.0
科学记数法形式,如:3.14e2 3.14E2
final double MIN=3.14E2D; //3.14×102(双精度)
final double MIN=3.14E-2;
final float MAX=313.4
三、编程训练
1.代码:
public class InitVar { public static void main(String[] args) { byte a=10; short b=20; //声明一个短整形变量b,初始化为20 int c=30; //声明一个整形变量c,初始化为30 long d=40L; float e=50F; //声明一个单精度变量e,初始化为50F float f=60; //声明一个单精度变量f,初始化为60.特别注意,这里60后面不加F,也正确。因为整型常量赋值给实型变量,会自动加宽 char g='A'; //声明一个字符变量g,初始化为'A' boolean h=true; //声明一个布尔变量h,初始化为true final double PI=3.14; //声明一个双精度常量PI,初始化为3.14 System.out.println("字节型,a="+a); System.out.println("短整型,b="+b); System.out.println("整形,c="+c); System.out.println("长整型,d="+d); System.out.println("字节型,e="+e); System.out.println("单精度,f="+f); System.out.println("字符型,g="+g); System.out.println("布尔型,h="+h); System.out.println("双精度,PI="+PI); } }
2.部分代码解释:
println中的ln是line换行的意思。输完就会换一行
System.out.println(""+); //()里是我们要输出的内容,分两个部分,""内的会原样输出。+起到连接符的作用,连接上""里的值。
注意缩进
3.运行结果