一.Java的基本语法
Java的基本格式:
Java中的程序代码都必须放在一个类中,类需要使用class关键字定义,在class前面可以有一些修饰符。格式如下:
修饰符 class 类名{
程序代码
}
编写Java代码时的关键点:
1.Java中的程序代码可分为结构定义语句和功能执行语句,其中,结构定义语句用于声明一个类或方法,功能执行语句用于实现具体的功能,每条功能执行语句的最后都必须用分号(;)结束。
2.Java语言严格区分大小写。例如,定义一个类时,Computer和computer是两个完全不同的符号,在使用时务必注意。
3.虽然Java没有严格要求用什么样的格式来编排程序代码,但是,处于可读性的考虑,应该让直接编写的程序代码整齐美观、层次清晰。以下两种方式都可以,但是建应使用后一种。
4.Java程序中一句连续的字符串不能分开在两行中书写,例如,下面这条语句在编译时将会出错:
5.如果为了便于阅读,想将一个太长的字符串分在两行中书写,可以先将这个字符串分成两个字符串,然后用加号(+)将这两个字符串连起来,在加号(+)处断行,上面的语句可以修改成如下形式:
Java中的注释:
1.在编写程序时,为了使代码易于阅读,通常会在实现功能的同时为代码加一些注释。
2.注释是对程序的某个功能或者某行代码的解释说明,它只在Java源文件中有效,在编译程序时编译器会忽略这些注释信息,不会将其编译到class字节码文件中去。
Java中注释的三种类型:
1.单行注释:通常用于对程序中的某一行代码进行解释,用符号“//”表示,“//”后面为被注释的内容
2.多行注释:顾名思义就是在注释中的内容可以为多行,它以符号“/*”开头,以符号“*/”结尾
3.文档注释:以“/**”开头,并在注释内容末尾以“*/”结束。
Java中的标识符:
1.在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如,包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。
2.标识符可以由任意顺序的大小写字母、数字、下划线(_)和美元符号($)组成,但不能以数字开头,不能是Java中的关键字。
Java中的关键字:
关键字是编程语言里事先定义好并赋予了特殊含义的单词,也称作保留字。和其它语言一样,Java中保留了许多关键字,例如,class、public等,下面列举的是Java中所有的关键字。
二.Java中的常量
1.常量就是在程序中固定不变的值,是不能改变的数据。
2.在Java中,常量包括整型变量、浮点数常量、布尔常量、字符常量等。
变量的定义:
1.在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来标识。这些内存单元我们称之为变量,定义的标识符就是变量名,内存单元中存储的数据就是变量的值。
2.下面的代码中,第一行代码的作用是定义了两个变量x和y,也就相当于分配了两块内存单元,在定义变量的同时为变量x分配了一个初始值0,而变量y没有分配初始值。
3.第二行代码的作用是为变量赋值,在执行的第二行代码时,程序首先取出变量x的值,与3相加后,将结果赋值给变量y,此时变量x和y在内存中的状态发生了变化。
变量的数据类型:
Java是一门强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错。
1.整数类型变量
(1)用来存储整数数值,即没有小数部分的值。
(2)整数类型分为4种不同的类型:字节型(byte)、短整型(short)、整型(int)和长整型(long)。
(3)占用空间指的是不同类型的变量分别占用的内存大小。
(4)取值范围是变量存储的值不能超出的范围。
(5)为一个long类型的变量赋值时需要注意一点,所赋值的后面要加上一个字母“L”(或小写“l”,说明赋值为long类型。如果赋的值未超出int型的取值范围,则可以省略字母“L”(或小写“l")。
2.浮点数类型变量
(1)浮点数类型变量用来存储小数数值。
(2)浮点数类型分为两种:单精度浮点数(float)、双精度浮点数(double),double型所表示的浮点数比float型更精准。
(3)在取值范围中,E表示以10为底的指数,E后面的”+“号和”-“号代表正指数和负指数,例如1.4E-45表示1.4*10^-45。
(4)在为一个float类型的变量赋值时需要注意一点,所赋值的后面一定要加上字母”F“(或 ”f“),而为double类型的变量赋值时,可以在所赋值的后面加上字符”D“(或”d“),也可不加。
(5)在程序中也可以为一个浮点数类型变量赋予一个整数数值。
3.字符类型变量
(1)用于存储一个单一字符,在Java中用char表示。
(2)每个char类型的字符变量都会占用2个字节。
(3)赋值时,要用英文半角格式的单引号('')把字符括起来,如‘a'。
(4)也可以赋值为0~65535范围内的整数,计算机会自动将这些整数转化为所对应的字符,如数值97对应的字符为’a'。
4.布尔类型变量
布尔类型变量用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,即true和false。
变量的类型转换:
1.当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。
2.根据转换方式的不同,数据类型转换可分为两种:自动类型转换和强制类型转换。
1.自动类型转换
(1)也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。
(2)要实现自动类型转换,必须同时满足两个条件,
·第一是两种数据类型彼此兼容,
·第二是目标类型的取值范围大于源类型的取值范围。
2.强制类型转换
(1)强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。
(2)当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。
(3)强制类型转换的格式如下所示:
变量的作用域:
1.变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。
2.在程序中,变量一定会被定义在某一对大括号中,该大括号所包含的代码区域便是这个变量的作用域。
三.Java中的运算符
算术运算符:
算术运算符就是用来处理四则运算的符号,这是最简单、嘴常用的运算符号。
赋值运算符:
赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量,表中列出了Java中的赋值运算符及用法。
多学一招:
在为变量赋值时,当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,需要进行强制类型转换。
然而在使用+=、-=、*=、/=、%= 运算符进行赋值时,强制类型转换会自动完成,程序不需要做任何显式地声明。
比较运算符:
1.比较运算符用于对两个数值或变量进行比较,其结果是一个布尔值,即true或false。
2.比较运算符在使用时需要注意一个问题,不能将比较运算符”==“误写成赋值运算符“=”。
逻辑运算符:
逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔型。
运算符的优先级:
在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,把这种顺序称作运算符的优先级。
【任务2-1】商城库存清单程序设计
代码:
结果:
四.选择结构语句
if条件语句:
三种语法格式:
(1)if语句
(2)if...else语句
(3)if...else if...else语句
1.if语句
(1)if语句是指如果满足某种条件,就进行某种处理,其语法格式如下所示:
(2)上述语法格式中,判断条件是一个布尔值,当值为true时,才会执行{}中的语句。
2.if...else语句
指如果满足某种条件,就进行某种处理,否则就进行另一种处理,其语法格式如下所示:
3.(1)在Java中有一种特殊的运算叫做三元运算,它和if-else语句类似,语法如下:
(2)三元运算符通常用于对某个变量进行赋值,当判断条件成立时,运算结果为表达式1的值,否则结果为表达式2的值。
4.if...else if...else语句
用于对多个条件进行判断,进行多种不同的处理,其语法格式如下所示:
switch语句:
1.也是一种很常见的选择语句。和if条件语句不同,它只能针对某个表达式的值做出判断,从而决定执行哪一段代码。
2.在switch语句中,使用switch关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句,switch语句的基本语法结果如图所示:
· 需要注意的是,在switch语句中表达式只能是byte、short、char、int、枚举、String类型的值,如果传入其他值,程序会报错。
·在使用switch语句的过程中,如果多个case条件后面的执行语句是一样的,则该执行语句只需书写一次即可。
五.循环结构语句
while循环语句:
while语句和if条件语句有点类似,都是根据条件判断来决定是否执行后面的代码,区别在于,while循环语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立,while循环结束。
do...while循环语句:
与while循环语句功能类似,其语法结构如下所示:
for循环语句:
1.for循环语句是最常用的循环语句,一般用在循环次数已知的情况下,其语法格式如下所示:
2.在上述语法格式中,for后面的()中包括三部分内容,初始化表达式、循环条件和操作表达式,它们之间用“;"分隔,{}中的执行语句为循环体。
3.如果用①表示初始化表达式、②表示循环条件、③表示操作表达式、④表示循环体,则for循环的执行流程如下所示:
循环嵌套:
是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do...while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套for循环,格式如下:
跳转语句(break、continue):
1.break语句:用在switch条件语句和循环语句中,它的作用是终止某个case并跳出switch结构。
2.continue语句:用在循环语句中,它的作用是终止本次循环,执行下一次循环。
【任务2-2】猜数字游戏
代码:
结果:
六.方法
什么是方法:
在Java中,声明一个方法的具体语法格式如下所示:
修饰符:是对访问权限的限定,例如,public、static都是修饰符
返回值类型:用于限定方法返回值的数据类型
参数类型:用于限定调用方法时传入参数的数据类型
参数名:是一个变量,用于接收调用方法时传入的数据
return关键字:用于结束方法以及返回方法指定类型的值
返回值:被return语句返回的值,该值会返回调用者
方法的重载:
Java允许在一个程序中定义多个名称相同的方法,但是参数的类型或个数必须不同,这就是方法的重载。
七.数组
数组的定义:
1.指一组数据的集合,数组中的每个元素被称为元素,在数组中可以存放任意类型的元素,但同一个数组中存放的元素类型必须一致。
2.在Java中,可以使用下列格式定义一个数组,具体示例如下:
3.上述语句就相当于在内存中定义了100个int类型的变量,第一个变量的名称为x[0],第二个变量的名称为x[1],以此类推,第100个变量的名称为x[99],这些变量的初始值都是0。
4.为了更好地理解数组的定义方法,可以把上述代码定义为两行来写,具体如下:
5.通过两张内存图来说明数组在创建过程中的内存分配情况,具体如下所示:
6.在Java中,为了方便我们获得数组的长度,提供了一个length属性,在程序中可以通过“数组名.length”的方式来获得数组的长度,即元素的个数。
7.当数组被成功创建后,数组中元素会自动赋予一个默认值,根据元素类型的不同,默认初始化的值也是不一样的。
8.在初始化数组时还有一种方式叫做静态初始化,就是在定义数组的同时就为数组的每个元素赋值。数组的静态初始化有两种方式:
数组的常见操作:
1.数组遍历
在操作数组时,经常需要依次访问数组中的每个元素,这种操作叫做数组的遍历。
2.数组最值
在操作数组时,经常需要获取数组中元素的最值。
3.数组排序
在操作数组时,经常需要对数组中的元素进行排序,其中冒泡排序是比较常见的一种算法。冒泡过程中,不断比较数组中相邻的两个元素,较小者向上浮,较大者往下沉,整个过程和水中气泡上升的原理相似。
多维数组:
1.多维数组可以简单地理解为在数组中嵌套数组。在程序中比较常见的就是二维数组。
2.二维数组的定义有很多方式,具体如下:
3.上述方式与第一种方式类似,只是数组中每个元素的长度不确定,采用第二种方式常见的数组结构如下图所示。
4.采用上述方式定义的二维数组有三个元素,这三个元素都是数组,分别是{1,2}、{3,4,5,6}、{7,8,9}。
5.接下来,通过一张图来描述方式三定义的数组结构
6.多维数组对元素的访问也是通过角标的方式,例如,访问二维数组中第一个元素数组的第二个元素的方式如下所示:
【任务3-2】随机点名器
代码:
结果:
感谢观看!
————————————————
版权声明:本文为CSDN博主「OYFYO」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/OYFYO/article/details/129767125