Java基本语法、常量、变量、流程控制语句、方法以及数组:
Java中的程序代码都必须放在一个类中,类需要使用class关键字定义,在class前面可以有一些修饰符,基本格式如下:
修饰符class类名{
程序代码
}
在编写Java代码时,需要特别注意下列几个关键点:
(1)Java中的程序代码分为结构定义语句和功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用于执行具体的功能,每条功能语句都必须以(;)结束。
System.out.println("这是一个Java程序!");
(2)Java语句严格区分大小写,例如,定义一个类是,Couputer和coututer是两个完全不同的符号,在使用时务必注意。
(3)Java程序对于书写格式没有特别严格的要求,但出于可读性还是需要写得清晰些 以下两个方式都可以,但更推荐方式二。
(4)Java程序中一串连续的字符串不能分开在两行中书写,例如,以下语句在编译中就会出错:
System.out.println("这是第一个
Java程序!");
如果为了便于阅读,需要这么做,可以先将这个字符串分为两个字符串,然后用(+)将它们连起来,在(+)处断行,上面的语句可以修改成以下格式:
System.out.println("这是第一个"+
"Java程序!");
在编写代码时,为了方便阅读,通常会添加一些注释。注释是对代码的解释,编译程序中的编译器会忽视它们。
注释分三种,一、单行注释,以“//”开头,例如:
int c = 10; //定义一个整数变量
二、多行注释,以“/*”开头“*/”结尾,例如:
/* int c = 10;
int x = 5; */
三、文档注释,以“/**”开头“*/”结尾,例如:
/*
* 定义整数变量,名字b
* 定义整数变量,名字c
/*
int b = 2;
int c = 3;
*/
在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如,包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。
标识符可以由任意顺序的大小写字母、数字、下划线()和美元符号(S)组成,但不能以数字开头,不能是Java中的关键字。
建议初学者在定义标识符时还应该遵循以下规则:
1、包名所有字母一律小写。例如: cn.itcast.test。
2、类名和接口名每个单词的首字母都要大写。如: ArrayList、Iterator。
3、常量名所有字母都大写,单词之间用下划线连接。例如: DAY_OF_MONTH。
4、变量名和方法名的第一个单词首字母小写,从第二个单词开始每个单词首字母大写。例如: lineNumber、 getLineNumber。
5、在程序中,应该尽量使用有意义的英文单词来定义标识符,使得程序便于阅读。例如使用userName表示用户名,password表示密码。
关键字是事先定义好并赋予了特殊意义的单词,也叫保留字。例如:class、public等。
常量就是在程序中固定不变的值,是不能改变的数据。在Java中,常量包括整型常量、浮点型常量、布尔常量、字符型常量。
1、整型常量
整型常量是整数类型的数据,它的表现形式有四种,具体如下:。二进制:由数字0和1组成的数字序列,如:00110101。
八进制:以0开头并且其后由0~7范围(包括0和7)内的整数组成的数字序列如:0342。
十进制:由数字0~9范围(包括0和9) 内的整数组成的数字序列。如:198。整数以十进制表示时,第一位不能是0,0本身除外
十六进制:以ox或者ox开头并且其后由0~9、A~F(包括和9、A和F)组成的数字序列,如0x25AF。
2、浮点数常量
浮点数常量就是在数学中用到的小数,分为float单精度浮点数和double双精度浮点数两种类型。其中,单精度浮点数后面以F或f结尾,而双精度浮点数则以D或d结尾。当然,在使用浮点数时也可以在结尾处不加任何的后缀,此时虚拟机会默认为double双精度浮点数。浮点数常量还可以通过指数形式来表示。具体示例如下:
2e3f 3.6d 0f 3.84d 5.022e+23f+。
3、字符常量
字符常量用于表示一个字符,一个字符常量要用一对英文半角格式的单引号(")引起来,它可以是英文字母、数字、标点符号以及由转义序列来表示的特殊字符。具体示例如下:
la' rl' 'g' r' u00001 +
上面的示例中,"u0000'表示一个空白字符,即在单引号之间没有任何字符。之所以能这样表示是因为,Java采用的是Unicode字符集,Unicode字符以\u开头,空白字符在Unicode码表中对应的值为u0000'。
4、字符串常量
字符串常量用于表示一串连续的字符,,一个字符串常量要用一对英文半角格式的双引号 (”")引起来,具体示例如下:
"HelloWorld” "123” "Welcome in Xxx”
一个字符串可以包含一个字符或多个字符,也可以不包含任何字符,即长度为零。
2.1 Java的基本语法
传智播客黑马程序员改变中国IT教育我们正在行动
5、布尔常量
布尔常量即布尔型的两个值true和false,该常量用于区分一个事物
的真与假。
6、null常量
null常量只有一个值null,表示对象的引用为空。
变量的定义
在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识微来标识。这些内存单元我们称之为变量,定义的标识符就是变量名内存单元中存储的数据就是变量的值
下方的代码中,第一行代码的作用是定义了两个变量x和y,也就相当于分配了两块内存单元,在定义变量的同时为变量x分配了一个初始值0,而变量y没有分配初始值,变量x和y在内存中的状态如图所示。
int x = 0,y;
y = x+3;
java是一名强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错。
整数类型变量分四种字节型(byte) 、短整型(short)、整型(int)、长整型(long)。
当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。转换分自动类型转换和强制类型转换。
1自动类型转换
也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。
要实现自动类型转换,必须同时满足两个条件,
第一是两种数据类型彼此兼容,
第二是目标类型的取值范围大于源类型的取值范围。
byte b = 3;
int x = b; //程序把byte类型的变量b转换成了int类型,无需特殊声明
(1)整数类型之间可以实现转换,如bvte类型的数据可以赋值给short、int、long类型的变量,short、char类型的数据可以赋值给int.long类型的变量,int类型的数据可以赋值给long类型的变量
(2)整数类型转换为float类型,如byte、char、short、int类型的数据可以赋值给float类型的变量。
(3)其它类型转换为dcuble类型,如byte、char、short、int、longfloat类型的数据可以赋值给double类型的变量。
2、强制类型转换
强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。
当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。
强制类型转换的格式如下所示:
“目标类型 变量 = (目类型》值”
变量需要在它的作用范围内才可以使用,这个范围被称为变量的作用域。在程序中,变量一定会被定义在一对大括号中,这个大括号所包含的代码区域便是这个变量的作用域。
算术运算符就是用来处理四则运算的符号,这是最简单、最常用的运算符号。
算术运算符看上去比较简单,也很容易理解,但在实际使用时有很多需要注意的问题,具体如下:
(1) 在进行自增(++) 和自减 (--)的运算时,如果运算符放在操作数的前面则是先进行自增或自减运算,再进行其它运算。反之,如果运算符放在操作数的后面则是先进行其它运算再进行自增或自减运算.
(2)在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。如果除法运算有小数参与,得到的结果会是一个小数。
(3)在进行取模(%)运算时,运算结果的正负取决于被模数%左边的数)的符号,与模数(%右边的数)的符号无关。
赋值运算符作用就是将常量、变量或表达式的值付给某一个变量,下表中列出了Java中的赋值运算符及作用
比较运算符用于对两个数值或变量进行比较,其结果是一个布尔值,即ture或false。
比较运算符在使用时需要注意一个问题,不能将比较运算符“==”误写成赋值运算符“=” 。
逻辑运算符用于对布尔型数据进行操作,其结果仍是一个布尔型。
运算符“”和“1”都表示或操作,当运算符两边的操作数任何一边的值为true时,其结果为true,当两边的值都为false时,其结果才为false。同与操作类似,“11”表示短路或,当运算符“11”的左边为true时,右边的表达式不会进行运算。
运算符“a”表示异或操作,当运算符两边的布尔值相同时(都为true或都为false),其结果为false。当两边布尔值不相同时,其结果为true。
在对一些比较复杂的表达式进行运算时,要明确表达式中所用运算符参与运算的先后顺序,把这种顺序称作运算符的优先级。
if条件语句分为三种语法格式,具体如下:
(1) if语句
(2)if.else语句
(3) if...else if..else语句
(1)if条件语句执行流程如下:
(2)if...else语句
if...else语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理,其语法格式如下所示:
if(断条件)(
执行语句 1f
Jelse(+
执行语句 2+
Ju
(3)if...else if...else语句
>if...else if ...else语句用于对多个条件进行判断,进行多种不同的处
理,其语法格式如下所示:
if (判断条件 1)(
执行语句1
}else if (判断条件2) (+
执行语句2r
.。七
else if (判断条件n) {+
执行语句n+
)else (+
执行语句a+lv
switch语句也是一种很常见的选择语句。和if条件语句不同,它只能针对某个表达式的值做出判断,从而决定执行哪一段代码
在switch语句中,使用switch?关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句,switch语句的基本语法结果如下图所示
smico(表达式)()
case 标值It
执行语句1
break;
case 目标值2:
执行语司2
case目标值n
执行语句n
break;
derault;r
执行语句n+1
break;
需要注意的是,在switch语句中的表达式只能是byte、short、
char、int、枚举(JDK1.5引入的)、String类型 (JDK1.7引入的)
的值,如果传入其他值,程序会报错。
例如,在程序中使用数字1~7表示周一到周日,如果想根据某个输入的数字输出中文格式的星期几可以通过下方代码实现。
while语句和if条件语句有点类似,都是根据条件判断来决定是否执行后面的代码,区别在于,while循环语句会反复地进行条件判断,只要条件成立,#内的执行语句就会执行,直到条件不成立while循环结束。
while循环语句的语法结构如下所示:
while(循环条件){+
执行语句
------
}
while循环语句流程如下
do...while循环语句流程如下
for循环语句是最常用的循环语句,一般用在循环次数已知的情说下,其语法格式如下所示:
for(初始化表达式:循环条件,操作表达式){
执行语句
--------
}
在上述语法格式中,for后面的()中包括三部分内容,初始化表达式、循环条件和操作表达式,它们之间用“,”分隔,0中的执行语句为循环体。
如果用1表示初始化表达式、2表达循环条件、3表示操作表达式、4表示循环体,则for循环的执行流程如下所示:
嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do...while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套for循环,格式如下:
跳转语句用于实现循环执行过程中程序流程的跳转,在Java中的
跳转语句有break语句和continue语句
1、break语句:用在switch条件语句和循环语句中,它的作用是终止某个case并跳出switch结构。
2、continue语句:用在循环语句中,它的作用是终止本次循环,执行下一次循环。
假设有一个游戏程序,程序在运行过程中,要不断地发射炮弹发射炮弹的动作需要编写100行的代码,在每次实现发射炮弹的地方都需要重复地编写这100行代码,这样程序会变得很臃肿,可读性也非常差。
为了解决代码重复编写的问题,可以将发射炮弹的代码提取出来放在一个0中,并为这段代码起个名字,这样在每次发射炮弹的地方通过这个名字来调用发射炮弹的代码就可以了
上述过程中,所提取出来的代码可以被看作是程序中定义的一个方法,程序在需要发射炮弹时调用该方法即可。
在Java中,声明一个方法的具体语法格式如下所示:
修饰符 返回值类型 方法名([参数类型 参数名 1参数类型 参数名 2,.....])
(执行语句)
return 返回值;
修饰符:是对访问权限的限定,例如,public、static都是修饰符。返回值类型:用于限定方法返回值的数据类型
参数类型:用于限定调用方法时传入参数的数据类型
参数名,是一个变量,用于接收调用方法时传入的数据
return关键字:用于结束方法以及返回方法指定类型的值
返回值:被return语句返回的值,该值会返回调用者
数组是指一组数据的集合,数组中的每个元素被称为元素,在数组中可以存放任意类型的元素,但同一个数组中存放的元素类型必须一致。
在Java中,可以使用下列格式定义一个数组,具体示例如下:
int[]x=newint[100];
上述语句就相当于在内存中定义了100个int类型的变量,第一个变量的名称为x[0],第二个变量的名称为x[1],以此类推,第100个变量的名称为x[991,这些变量的初始值都是0。
在初始化数组时还有一种方式叫做静态初始化,就是在定义数组的同时就为数组的每个元素赋值。数组的静态初始化有两种方式:
1.类型[] 数组名= new 类型[](元素,元素,··.··};
2.类型[] 数组名 =(元素,元素,元素,···.};
1、数组遍历
在操作数组时,经常需要依次访问数组中的每个元素,这种操作叫做数组的遍历。