一、前言
[引例描述>问题提出
在开发“职工工资管理”程序时,需要提供和用户交互的界面,如界面提示“请输)职工姓名:”、用户可以在交互界面输入职工姓名。如何实现在界面输出提示信息?如接收用户输入的信息?用户输入职工信息后,这些信息存储在哪里?
本章介绍 Java 的基本语法、常量与变量、8种基本数据类型、表达式以及简单的输)输出。
通过本章学习,读者可掌握Java中的常量、变量和不同数据类型表达数据信息的方法;报Java运算符的使用方法和Java输入与输出方法;能综合运用所学知识实现工资计算器界面计任务。
二、标识符、关键字和分隔符
在程序中,编程人员要对程序中的变量,类,方法,标号,数组,字符串和对象等元素进行命名,这种命名记号称为标识符
2.1 Java标识符
标识符用来表示变量、常量、类、方法、数组、文件、接口。包等元素的名字。Java语言的标识符是由字母、下画线、美元符号()和数字组成,并且需要遵守以下的规则:1)区分大小写。
2)应以字母、下画线或$符号开头,不能以数字开头。3)没有长度限制,标识符中最多可以包含65535个字符。4)不能使用Java 中的关键字。合法的标识符有:
Class 、abc 、_a$value、 a3、 area 、myint、变量1、你好。
由于Java语言内置了对Unicode字符编码的支持,因此Java字母(Javaletter)包含了文、日文、韩文等,因此“变量1”、“你好”等也是合法的标识符。但在实际应用中,不建议月中文作为标识符。
不合法的标识符有:class 2a hello! Build#3 my-int。
其中 class 是Java预留的关键字,2a 以数字开头,而hello!、Build#3、my-int中出现了非法字符,因此都不是合法的标识符。
2.2 关键字
Java 语言中,关键字是具有特殊意义和用途的标识符,由系统专用,用户不能将其定)标识符。另外,Java中有2个保留字,现有Java版本尚未将其作为关键字来使用,但以后本可能会作为关键字使用,命名标识符时要避免使用这些保留字。关键字和保留字均用小表示,按字母顺序如表2-1所示。
表2-1Java中的关键字和保留字
2.3 分隔符
Java语言中的分隔符用于分标识符、操作数、关键字或语句。常用的分隔符有7种,其功能和作用分别如下:
圆括号(()):在定义和调用方法时使用,用来容纳参数列表;在控制语句或强制类型转换组成的表达式中使用,用来表示执行或计算的优先级。
花括号({}):用来包括自动初始化数据时赋给数组的值;也用来定义语句块、类、方法以及局部范围。
方括号([]):用来声明数组的类型;也用来表示对数组的引用。分号(;):用来终止一个语句。
逗号(,):在变量声明中,用来分隔变量表中的各个变量;在for控制语句中,用来将圆括号中的语句连接起来。
句号(.):用来将软件包中的名字与其子包或类分隔;用来调用引用变量的变量或方法;也用来引用数组的元素。
空格(_):广义的空白字符包括空格、换行符、Tab制表字符等,连续多个空格与一个空格的效果相同。
2.4 代码注释
java语言共有3种代码注释形式,分别是单行注释、多行注释和文档注释。
三、数据类型
现实生活中的数据有不同类型之分,如在计算职工工资时,职工人数为整数,职工姓名为字符串,职工工资为浮点数等。
3.1 数据类型的划分
3.2 基本数据类型
在栈中可以直接分配内存的是基本数据类型、
1.整数类型(简称整形)
整形是没有小数部分的数据类型。Java提供字节型(byte)、短整形(short)、整形(int)和长整型(long)4种整数类型,这些整数类型都有正负数之分。每种整形占用的二进制位数和取值范围见表:
2.浮点类型
3.布尔类型
布尔类型用于表达两个逻辑状态之一的值,也称为逻辑类型。Java中的布尔类型变量是 boolean,取值只能为true 和 false 两者之一,true代表逻辑“真”,false代表逻辑“假”。与 C/C++不同的是,Java中的布尔值不能与0、1相互转换。
布尔类型通常被用在流程控制中,作为判断条件。
boolean flag = true;
4.字符类型
字符类型char用于表示单个字符,如字母、数字、标点符号或其他符号。Java 使用 Unicode 字符集,因此char 类型的数据均是16位,不管是英文还是中文,都占用两个字节的内存空间。字符类型常量用一对单引号括起来,比如'K’、'a’、'3’、'你'。也可以使用Unicode 编码来表示字符值,用\u开头的4个十六进制数表示,如"u0041表示'A'。
5.字符串类型
有许多基本数据类型的特征,比如可以声明字符串变量,对字符串变量直接赋值等。字符串类型是程序设计中的常用类型,虽然字符串不是Java语言的基本数据类型,但它具2字符串是包含在""中的字符序列,序列中字符的个数称为字符串的长度,长度为0的字符串为空串。以下为部分字符串。
"Hello World!""欢迎!"
#" //字符串中有一个空格字符,长度为1
// 空串,长度为0
null //空对象,不指向任何实例
字符串变量的声明格式为:
String 变量名:
变量声明后就可以对其赋值:
String s1 = "Hello",s2 ; // 声明String 型变量s1和s2,同时给s1赋值
s2="World!"; // 给s2 赋值为"World!"
String s3 = s1+s2; // s3为"HelloWorld!"
其中“+”运算将两个字符串连接成一个新的字符串。若其中某个操作数为其他数据类型,则先将其隐式转换成字符串,然后再进行字符串连接运算。例如:
// 先将数值 800转化为字符串"800",再进行连接运算 System.out,println("职工津贴为每月"+800+"元");
6.数据类型转换
整型、字符型、浮点型数据可以混合运算。不同优先级类型的数据需要先转换为同一类型进行运算。Java中类型的优先级由低级到高级分别为(byte, short, char)→int→long→float→double(1)自动类型转换
当出现混合运算时,类型转换的一般原则是低优先级(位数少)的类型转换为高优先数多)的类型,称作自动(隐式)类型转换。当将某种类型的值赋给另一种类型的变量时,两种类型是兼容的,就可以将低优先级类型的值赋给高优先级类型的变量。例如当将型值赋给 kng型的变量时,Java执行自动类型转换。如下面的语句可以在Java编译器中直接通过:
byte a = 10; //定义字节型变量 a
inti=a; float f=a;(2)强制类型转换
若将高优先级的值赋给低优先级的变量,如将long型值赋给int型变量,则可能造成信息的丢失,这时Java不能执行自动类型转换,编译器需要程序员通过强制(显式)类型转换的方式确定这种转换。强制类型转换的一般形式为:
(type)expression例如:
float f=5.5F; //定义单精度型变量f
short s = (short) f; //高优先级到低优先级的强制类型转换
int í= (int)f+100; // 先将f转化为int型,存放在临时变量中
//然后与100相加,将结果赋给i;f的类型不变,仍为float 型。
四、常量和变量
在程序中使用各种数据类型时,其表现形式有两种:常量和变量。常量是在程序执行过程中取值始终保持不变的量,而变量是在程序执行过程中取值可以发生变化的量。
4.1 常量
如果在程序中的多处用到某个特定值,则可以将其定义为常量。这样,一方面可以避免反复输入同一个值,另一方面当该值发生变化时,只须在声明处修改一次。常量有字面(Literal)常量和符号常量两种形式。
字面常量是指其数值意义如同字面所表示的一样,例如78,就表示值和含义均为78。常量分不同的数据类型,如整型常量123,实型常量4.56,字符常量'A,布尔类型常量 true false,字符串常量"I like Java."。
符号常量是用Java标识符表示的常量,可以使用保留字定义符号常量,符号常量定义的般格式如下:
<final><数据类型><符号常量标识符>=<常量值> final int COUNT = 100;
final double PI = 3.14159 ;
常量只能赋值一次,为了使其与变量区别开,习惯上常量名中的字母全部为大写。
4.2 变量
变量是Java程序中用于表示数据的存储单元。Java是强类型语言,所有变量必须先声明在使用,变量定义的一般格式如下:
五、运算符和表达式
Java语言中对数据的处理过程称为运算,用于表示运算的符号称为运算符,它由1~3符结合而成。虽然运算符是由数个字符组合而成的,但Java将其视为一个符号。参加运算据称为操作数,按操作数的个数来划分,运算符的类型有;一元运算符(如++)、二元运(如*)和三元运算符(如?)。按功能划分,运算符的类型:算术运算符、关系运算符、运算符、位运算符、赋值运算符、条件运算符和其他运算符。
5.1 算术运算符
5.2 关系运算符
5.3 布尔运算符
布尔逻辑运算符主要完成操作数的布尔逻辑运算,结果为布尔值。Java中的布尔逻辑运算符共有6种:
5.4 位运算符
位运算符是对以二进制为单位的操作数的每一位进行操作,但运算的操作数和结果都是整型变量。位运算符共有七种:
5.5 赋值运算符
赋值运算符值运算符两边的类型不一致,当赋值运算符右侧表达式的数据类型比赋值运算符“=”用来把一个表达式的值赋给一个变量。如果赋2-7赋值运算符78
左侧的数据类型优先级别低时,则把右侧表达式的数据类型自动转换 赋值表达式 9
为与左侧相同的高级数据类型,然后将值赋给左侧的变量。当右侧数 10
据类型比左侧数据类型优先级高时,则需要进行强制类型转换,否则会发生错误。 1
Java将算术运算符或位运算符进行组合,形成复合赋值运算符,以简化某些赋值语句一 Java 中的部分赋值运算符如表2-9所示。
5.6 条件运算符
条件运算符 :
进制形式
条件运算符“?”是三元运算符,它的一般形式为:
表达式1?表达式2:表达式 3
其中表达式1的值必须为布尔类型,如果结果为true,则执行表达式2,表达式2的执行结果即为整个表达式的值。如果表达式1的结果为false,则执行表达式3,表达式3的结果作为整个表达式的值。例如:
int max, a=20 ,b=15 ; max = a>b?a:b;执行的结果为max=20。
5.7 运算符优先级
对表达式进行运算时,要按照运算符的优先顺序从高到低进行,同级的运算符则按从左到右的顺序进行。
5.8 表达式与语句
5.8.1 表达式
表达式是由操作数和运算符按一定的语法形式组成的用来表达某种运算或含义的符号序列。如3.5/2、2*(a+b)等都是有效的表达式。
每个表达式经过运算后都会产生一个确定的值,称为表达式的值。表达式值的数据类型称为表达式的数据类型。一个常量或一个变量是最简单的表达式。表达式可以作为一个整体,即作为一个操作数参与到其他运算中,形成复杂的表达式。根据表达式中所使用的运算符和运算结果的不同,可以将表达式分为算术表达式、关系表达式、布尔表达式、条件表达式及字符串表达式等。
5.8.2 语句
Java程序由语句组成,每个语句是一个完整的执行单元,以分号结尾。下列4种表达式后面加上分号,就成了语句。
5.8.3 语句块和作用域
语句块由一对{}以及其中的语句组成,语句块中的语句可以有零行(空语句块),也可以多行,空语句块留待以后再添加相关语句。任何可以使用语句的地方都可以使用语句块,通语句块出现在流程控制、类的声明、方法的声明以及异常处理等场合。
每个语句块定义了一个作用域,在作用域内定义的变量是局部变量,局部变量只有在对应的语句块内具有可见性。语句块可以嵌套,每创建一个语句块,就创建了一个新的作用域。作用域嵌套时,外层作用域包含内层作用域,即外层作用域定义的变量在内层作用域中可见;反之,内层作用域定义的变量对外层作用域是不可见的。
5.5 简单的输入与输出
输入和输出事故程序中的重要组成部分,是实现人机交互的手段。输入是指把需要加工处理的数据放到计算机内存中,而输出则是把处理的结果呈现给用户。在Java中,通过System.in和System.out对象分别与键盘和显示器发生联系而完成程序的输入与输出。
5.5.1 输出
5.5.2 输入
六、总结
掌握Java语言基础是成为一名优秀Java程序员的前提。本文仅涵盖了Java语言的基础知识和核心概念,要想在实际项目中灵活运用Java,还需要不断学习和实践。希望本文能为你打开Java编程世界的大门,助你在CSDN平台上收获高分评价,迈向编程高手之路。