02-常量和变量.doc_第1页
02-常量和变量.doc_第2页
02-常量和变量.doc_第3页
02-常量和变量.doc_第4页
02-常量和变量.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 标识符Java程序通常要用到标识符、关键字、常量、变量和数据类型。下面介绍这些内容。2.1 标识符与字符集1标识符的概念用来给类名、变量名、常量名、接口名、包名、方法名、数据类型名、数组名和文件名起名字的字符串称为标识符。标识符就是一个名称。2标识符组成规范Java语言规定标识符的组成遵循以下规范:(1)标识符必须以大小写字母、数字、下划线和美金符号$组成(字母、数字、下划线和美金符号$统称为字符)。(2)标识符的第一个字符不能是数字。例如:liu、_zhao、$wang等等都是合法的标识符;而567kan,chen#,meng都不是合法的标识符。(3)Java语言严格区分大小写。例如:Love和love表示两个完全不同的标识符。(4)标识符的长度没有限制,但是不宜过长。3字符集每个标识符由多个字符组成的。Java语言使用Unicode标准字符集(字符的集合),该字符集最多可以表示65536个字符。Unicode标准字符集中的前128个字符与ASCII字母表对应。每个国家的字母表都是Unicode标准字符集的一个子集。2.2 关 键 字关键字是Java语言系统专门使用的标识符,程序员不能使用这些标识符给类名、变量名、常量名、接口名、包名、方法名、数据类型名、数组名和文件名命名。Java语言的关键字主要包括:implements、import、instanceof、int、interface、long、nativenew、null、package、private、public、this、throw、true、try、void、while 、abstract、boolean、break、byte、case、catch、char、continue、do、double、else extends、false、find、finally、float、for、return、short、static、super、swith、synchronized等。2.3 常量、变量和数据类型变量名就是指内存中一块存储空间的名称,我们称这类空间为变量。这类存储空间中的数据在程序运行过程中可以发生改变。常量名也是指内存中的一块存储空间的名称,我们称这类空间为常量。这类存储空间中的数据在程序运行过程中不会发生改变。常量和变量所代表的存储空间都是用来存储数据的,而数据有类型之分,因此,常量和变量也有类型之分。在使用常量和变量保存数据以前,必须定义常量和变量的数据类型。定义常量或变量的数据类型后,可以通过赋值语句给常量或变量赋予数据。常量只能赋值一次值,变量可以多次赋值。 Java语言将数据分为两大类型,即基本数据类型和引用数据类型(也称对象型)。2.3.1 Java基本数据类型基本数据类型包括布尔类型、字符类型、整数类型和浮点类型。下面分别说明4种基本数据类型的常量表示方式、变量定义格式。1布尔型(boolean)布尔型数据长度是2个字节。(1)布尔常量布尔常量只有两个值:true、false。(2)布尔变量的定义使用关键字boolean来定义布尔变量。如定义布尔变量a1、a2、a3的格式如下:boolean a1, a2, a3; /定义时没有给变量赋值,编译时由系统给变量赋予默认值(false)定义时给变量赋初值的格式如下:boolean a1=true, a2=false, a3; /在同一行定义多个变量时,变量间用逗号隔开。2整型类型整型常量:例如,356(用十进制表示整数时首位不能为0)、1000(十进制)、0567(首位为0,代表八进制数)、0x9ABCD(首位是0x,代表十六进制数)。整型变量又分为4种:(1)byte型(数据长度是1个字节)使用关键字byte来定义byte型变量。如定义byte型变量a1、a2、a3的格式如下:byte a1, a2, a3; /定义时没有给变量赋值,编译时由系统给变量赋予默认值(0)定义时给变量赋初值的格式如下:byte a1=63, a2=-12, a3=77;(2)short型变量(数据长度是2个字节)使用关键字short来定义short型变量。如定义short型变量a1、a2、a3的格式如下:short a1, a2, a3; /定义时没有给变量赋值,编译时由系统给变量赋予默认值(0)定义时给变量赋初值的格式如下:short a1=12, a2=-174, a3=999;(3)int型变量(数据长度是4个字节)使用关键字int来定义int型变量。如定义int型变量a1、a2、a3的格式如下:int a1, a2, a3; /定义时没有给变量赋值, 编译时由系统给变量赋予默认值(0)定义时给变量赋初值的格式如下:int a1=33, a2=-155, a3;(4)long型变量(数据长度是8个字节)使用关键字long来定义long型变量。如定义long型变量a1、a2、a3的格式如下:long a1, a2, a3; /定义时没有给变量赋值,编译时由系统给变量赋予默认值(0)定义时给变量赋初值的格式如下:long a1=18, a2=777, a3=6655l;表示long型常量的方法是在整数后面加字母l。例如,456l ,789l。3字符类型(数据长度是2个字节)(1)字符型常量一个字符常量用单引号括起,如A、b、c、!、7、爱 等都是字符型常量。(2)字符型变量定义使用关键字char来定义字符型变量。如定义char型变量a1、a2、a3的格式如下:char a1, a2, a3; /定义时没有给变量赋值,编译时由系统给变量赋予默认值(u0000)定义时给变量赋初值的格式如下:char a1=?, a2=12, a3=来;char型常量在内存中以正整数(int型)的方式保存,因此,最高位不是用来表示符号的。(3)转义字符一些控制字符不能显示出来。表2-1表示了这些控制字符的含义。表 2-1 控制字符的含义控制字符描述n换行,将光标移到下一行的开始位置t将光标移到下一个制表符的位置r回车,将光标移到当前行的开始,不是移到下一行输出一个反斜杠 输出一个单引号”输出一个双引号(4)字符型数据在内存中的表示字符型数据在内存中以int型数据表示。如,字符常量d在内存中的值是100。要想知道一个字符在内存中保存的数字大小,只要将字符型数据转换成int型数据即可。如,System.out.println(int)h)语句,就能把字符h对应的数字输出来。4浮点类型浮点型数据分为单精度型和双精度型。(1) 单精度型(数据长度是4个字节) 常量:例如,567.539f、7889.3f、987.2f、777.00f。书写单精度常量数据时,在数据最后必须加f。否则,表示的常量是双精度数据。如,888.0表示的是双精度数据。 变量定义:使用关键字float来定义单精度浮点型变量。如定义float型变量a1、a2、a3的格式如下:float a1, a2, a3; /定义时没有给变量赋值,编译时由系统给变量赋予默认值(0.0)定义时给变量赋初值的格式如下:float a1=13.78f, a2=-99.7f, a3;(2)双精度型(数据长度是8个字节)常量:例如,5678.577d(d可以省略)、908.55、4567.000d,都是双精度常量。变量定义:使用关键字double来定义双精度型变量。如定义double型变量a1、a2、a3的格式如下:double a1, a2, a3; /定义时没有给变量赋值,编译时由系统给变量赋予默认值(0.0)定义时给变量赋初值的格式如下:double a1=113.8567, a2=-12.78d, a3=8901.66;5.声明一个常量的格式如果要声明一个常量,只要在定义变量时,在数据类型前加一关键字final,则该变量就变成了常量。例如:final double PI = 3.14159; / 声明一个double型常量PIfinal int KU = 123457; / 声明一个int型常量KUfinal char CH = a / 声明一个char型常量CH【例2.1】让用户输入圆的半径,程序计算出圆的面积并显示。程序清单2-1 MyInput.java( 该类方法从键盘读取int, double, and string 型值)import java.io.*;public class MyInput public static String readString() / 从键盘读取string数据 BufferedReader br = new BufferedReader(new InputStreamReader(System.in), 1); String string = ; try string = br.readLine(); catch (IOException ex) System.out.println(ex); return string; public static int readInt() / 从键盘读取int型数据 return Integer.parseInt(readString(); public static double readDouble() / 从键盘读取double型数据 return Double.parseDouble(readString(); public static byte readByte() / 从键盘读取byte型数据 return Byte.parseByte(readString(); public static short readShort() /从键盘读取short型数据 return Short.parseShort(readString(); public static long readLong() / 从键盘读取long型数据 return Long.parseLong(readString(); public static float readFloat() / 从键盘读取float型数据 return Float.parseFloat(readString(); 程序清单2-2 ComputeArea.java(计算圆的面积)public class ComputeArea public static void main(String args) double radius; double area; final double PI = 3.14159; / 声明一个常量PI System.out.print(请输入半径: ); radius = MyInput.readDouble(); area = radius*radius*PI; / 计算面积 System.out.println(半径为 + radius + 的圆的面积是 + area); 必须将文件MyInput.java和ComputeArea.java放在同一目录下编译、执行。2.3.2 基本数据类型转换数据类型转换表现在表达式和赋值语句中。数据类型的转换有两种形式。l 自动转换:不需要程序员干预,系统自动进行的转换。l 强制转换:程序员必须使用类型转换符进行转换。强制转换可能导致精度的损失。1数据类型精度排序数据类型按精度从低到高的排列顺序如下:byte short int long float double低 高2自动转换从低精度向高精度转换属于自动转换。(1)赋值语句中的转换。例如:float xx=500; /把整数500转换为浮点数这里将整数500赋给浮点型变量xx,是从低精度向高精度转换,系统自动进行。如果输出xx的值,结果将是500.0。(2)表达式中的数据转换。例如:int h=73;float y1=27.6f;double f=h+y1;混合数据类型表达式h+y1包含两个不同类型的数据,即整数h和单精度型数据y1。在计算表达式以前,系统自动将低精度的数据h转换为高精度的float型数据,转换后将两个数据进行求和,最后将结果数据(float型)转换为更高精度的double型数据并赋给变量f。3强制转换从高精度向低精度转换属于强制转换。强制转换的语句格式如下:(type)data /将数据data的类型转换为type型data为需要转换的变量或常量。type取值为byte、short、int、long、float、double。(1)赋值语句中的转换。例如:int x=(int)600.78f;这里将float型数据600.78f赋给整型变量x,是从高精度向低精度转换,需要在被转换的数据前使用目标类型转换符(int)。如果输出x的值,结果将是600。(2)表达式中的数据转换。例如:int m=23;float f1=27.6f;int k=m+(int)f1;混合数据类型表达式m+(int)f1包含两个不同类型的数据,即整数m和单精度型数据f1。在计算表达式以前,先将单精度型数据f1通过类型转换符(int)转换为整型数据。如果输出k的值,结果将是50。【例2.2】将一种数据类型转换成另外一种数据类型。程序清单2-3 TypeConver.javapublic class TypeConvert public static void main(String args) int x; double y; y=2009.04; x=(int)y;y=x; System.out.println(转换后x的值是:+x); System.out.println(转换后y的值是:+y); 语句x=(int)y;将导致精度的丢失。2.4 本 章 小 结Java语言规定标识符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字。Java语言将数据分为两大类型,即基本数据类型和引用类型。基本数据类型包括布尔类型、整数类型、字符类型和浮点类型。常量和变量都属于某种数据类型。在使用变量前,先要声明其所属数据类型。2.5 习 题1上机运行下列程序,输出的结果是什么?public class Test pub

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论