实训实习第一周day02

Day02

1.表达式

概念:由一系列的 常量 变量 运算符,括号()组成的一个算式,为了按照一定的运算规则计算出结果值.

作用:为了按照一定的运算规则计算出结果值,结果值如何使用:

  1. 结果值可以直接使用,也可以通过一个变量保存起来然后使用

  2. 表达式的结果值的类型 取表达式中操作数类型精度最高的类型

2.数据类型转换

定义:将数据从一种格式或结构转换为另一种格式或结构的过程。

目的:

  • 1.节约内存空间

  • 2.将一些类型转换为项目所需要的格式

类型转换分类

自动转换

实训实习第一周day02

定义:小的数据类型转换大的数据类型【存储空间】

注意事项:

char型具有两个字节,其数值范围是0 ~ 2^16-1,

​ short类型也具有两个字节,其值的范围是-2^15 ~ 2^15-1,

​ byte取值范围为-128~127,

char只有整数范围,因此char 不能和byte short 相互自动转换,byte不能自动提升到char,但可以自动提升到short类型。

强制转换

定义:大数据类型转小数据类型[存储空间大小]

语法:数据类型 变量名 = (数据类型)值/变量名;//值可能是更高的类型

注意事项:

  1. 高转低会导致精度丢失,不同类型的强制转换,可能会导致精度的下降.

  2. 实际开发中:应该要知道被强制转换的数据,是在一个已知的范围;

3.运算符

算数运算符

算数运算符号:

​ 加法(+)减法(-)乘法 (*) 除法(/) 取模(%)

l 自增自减运算符

增自减运算符符号:

​ ++ , --

注意事项:

​ 1) 自增自减只能够用于变量,不能用于常量

​ 2) 自增自减运算的优先级 比 算术运算符 高

要点:

​ 把整个表达式看成是一个整体。

​ 如果变量名在前面,那么整个表达式的值就是原来值不变。

​ 如果变量名在后面,那么整个表达式的值就是原来的值加1。

赋值运算符

赋值运算符的符号:

​ = ,+= ,-= ,*= , /= , %=

赋值符号的运算顺序

  1. 从右到左,把符号右边的值赋值到左边的变量中

  2. 上面 后五个分别看成是一个整体: 例如 += 看成是一个符号,不要看成两个;

比较运算符

比较运算符符号:

​ == , != ,> ,< ,>= ,<=

比较运算符规律:

  1. 比较运算的结果是一个布尔类型的值(true 或false);

逻辑运算符

逻辑运算符符号

|, &,||,&&

用来连接布尔类型的两个值或表达式,最终结果也位布尔类型

逻辑运算符运算规则

  1. & :两边都为true ,结果为true

  2. | :只要有一边为true,结果为true

  3. && :两边都为true ,结果为true

  4. || : 只要有一边为true,结果为true

  5. ^ : 两边不一样,结果为true ,否则为false,举个例子打印一下

  6. ! : 逻辑非

&& || 和 & | 区别?

1.&& || 具有短路功能 & | 不具有短路功能

何时短路?

A&& B 当A表达式为false时候,B中的代码不会执行,逻辑运算的值也为false

A || B 当A表达式为true时候,B中的代码不会执行,逻辑运算的值也为true

三目运算符

定义:

由问号?及冒号:分割的三个表达式,组成的一个表达式如X ? Y : Z ;按照一定规则进行运算的式子,称为表达式;该表达式具有一个结果值:

X :布尔类型的值或者结果为布尔类型的表达式

Y Z :一般来说数据类型相同的值或者表达式

运算规则:

X 为true,就是 Y 的结果值 ( 冒号前面的表达式的值):也就是整个三目运算的结果值

X为false,就是Z的结果值 ( 冒号后面的表达式的值):也就是整个三目运算的结果值

4.选择结构

选择结构用于判断给定的条件,根据判断的结果判断某些条件,根据判断的结果来控制程序的流程。

if选择结构

1. 基本的if结构:

基本语法:

if(判断条件){

​ 执行语句;

​ }

判断条件: 布尔类型的值或者表达式

执行语句:当条件满足时执行(可以是一条语句,也可以是一组语句)

2. if ...else结构

基本语法:

if(判断条件){
	执行语句;
}else{
	执行语句;
}

​ 判断条件: 布尔类型的值或者表达式

执行语句:当条件满足时执行if中的语句 其他情况执行else中的语句

3. if...else if结构

基本语法

if(判断条件){

执行语句;

}else if(判断条件){	

执行语句;

}else if(判断条件){

执行语句;

}

判断条件: 布尔类型的值或者表达式

执行语句:所有条件只能满足一个 条件互斥 因此执行语句只能有一条被执行到

4. if...else if...else结构

基本语法

if(判断条件){

执行语句;

}else if(判断条件){	

执行语句;

}.....else if(判断条件){

执行语句;

}else{

执行条件;

}

判断条件: 布尔类型的值或者表达式

执行语句:所有条件只能满足一个 条件互斥 因此执行语句只能有一条被执行到 如果条件都不满足 则执行else中的语句。

Swtich 选择结构

基本语法

switch(key){

	 case  v1: 
		执行语句;
		break;

	case  v2: 
		执行语句;
		break;
................

	default: 
		执行语句;
		break;
}

key: 限定类型的局部变量或常量

​ java5之前 : byte short char int

​ java5支持 : enum枚举

​ java7支持 : String 类型

v1,v2:与key同种类型的值 常量

执行原理:

​ 将key的值与case中列举的值进行匹配 如果匹配 执行 执行语句 找到break 跳出选择结构 如果都没有匹配上的值 则执行default中的执行语句,找到break 跳出选择结构;

注意事项:

  1. 每个case之间顺序可以交换 不影响代码运行

  2. default不一定放在末尾 在所有case失效的时候就会被执行到

  3. case中值与 key类型必须一致

  4. 最后一个break可以省略,但不建议

  5. break可以省略,但会导致后续case条件判断失效 按照从上到下顺序 直到找到第一个break跳出选择结构 如果没有找到 执行到末尾 自动跳出选择结构

5.循环结构

定义:

循环是计算机科学运算领域的用语,也是一种常见的控制流程。循环是一段在程序中只出现一次,但可能会连续运行多次的代码。循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都运行一次。

可以理解位重复的去执行某件事情,但需要有一个终止条件,否则会形成死循环,导致内存溢出;

l while循环

基本语法

while(循环条件){

执行语句; //循环体

}

循环条件:布尔类型的值或者表达式,需要不断变化,如果是一个常量或者固定不变的值,则称为没有意义的循环或者死循环;

执行语句:当循环条件为true时执行语句,false终止循环,不执行语句

执行流程:

  1. 第一次判断条件true,继续执行

  2. 第二次判断条件true,继续执行

  3. 第三次判断条件true,继续执行

  4. 。。。。。

  5. 直到第n次判断条件false,终止循环

l do...while循环

基本语法:

do{

执行语句;

}while(循环条件);

循环条件:布尔类型的值或者表达式,需要不断变化,如果是一个常量或者固定不变的值,则称为没有意义的循环或者死循环;

执行语句:当循环条件为true时执行语句,false终止循环,不执行语句

执行流程

  1. 首先执行do后面结构体中的执行语句

  2. 判断循环条件是否为true,如果true,执行do后执行语句,如果为false终止循环

l for循环

基本语法:

for(初始化条件A;判断条件B;循环后语句C){

执行语句D;

}

初始化条件A:初始化一个值,用来作为B中的判断条件

判断条件B:布尔类型的值或者表达式

循环后语句C:循环后执行的代码,目的是为了改变初始条件A的值,使B中条件不是一个固定的值

执行语句D:当B中的判断条件满足,为true执行D,false,则不执行

执行流程:

第一次:A--》B(true)--》D--》C

第二次: B(true)--》D--》C

第三次: B(true)--》D--》C

第n次: B(false) 结束整个循环

嵌套循环

顾名思义,嵌套循环指的是循环中嵌套一个循环;但最好嵌套不要超过两层,效率太低;

循环控制语句

  1. Break 作用:**终止当前循环

  2. Continue 作用:**跳出当前循环

  3. Return 作用:**终止当前方法

6.数组

在之前我们可以通过一个变量表示一个学生的年龄,如果现在需要表示全班 100 个人的年龄岂不是需 要定义 100 个变量来分别表示。这样的操作太麻烦了,为了解决这种问题,Java 就提供了数组。

概念:计算机在内存区域分配的一段连续的区域,用来存储不同或同种类型的数据

实训实习第一周day02

1)数组名 :数组的名字

2)数组元素 :就是存放在数组里面的数据

3)数组索引 :就是数组里面连续存储空间的编号,从0开始

4)length :数组的属性长度 数组名.length拿到数组的长度

定义数组

回忆定义变量的语法: 数据类型 变量; 如 int age;

数组的定义语法:

数组元素类型[] 数组名; 如 int[] ages; 另一种方式:int ages[];不推荐 可以把 int[]看成是一种数据类型——int 类型的数组类型。

int[] 数组可以看出,该数组中的元素类型是 int 类型的。

String[] 数组可以看出,该数组中的元素是 String

数组初始化

数组在定义后,必须初始化才能使用。所谓初始化,就是在堆内存中给数组分配存储空间,并为每一 个元素赋上初始值,有两种方式:

n 静态初始化;

n 动态初始化;

无论以哪种,一旦初始化完成,数组的长度(元素的个数)就固定了,不能改变,除非重新对该初始化,也就是说数组是定长的。

一般,如果我们事先知道元素是多少,选用静态初始化,事先不知道元素是多少,选用动态初始化。

二维数组

二维数组可以看作是一维数组中的元素为一维数组,声明方式和一维数组类型,把一维数组看作一个整体的数据类型

声明方式:

数据类型[] [] 数组名 = new 数据类型 [长度][长度];

数据类型[] [] 数组名= {{元素1,元素2},{元素3,元素4};

7.方法

概念:方法,也叫函数,但是一般在java中都叫方法,可以看成是一个可以完成独立功能的代码块,可以重使用,每次使用都是独立的!存在于类的结构体。

从主方法开始认识方法

public static void main(String[] args){} public:修饰符 表示公共的 static:修饰符 jvm优先加载 void :此处为返回值类型,void表示方法没有返回值 main : 方法名字 () : 圆括号 固定格式用来存放形式参数 String[] args:形式参数 String[]参数类型 args参数名字 {} :方法结构体 里面存放需要方法完成的功能语句

自定义方法

基本语法

public:非必须

static:非必须

返回值类型 :没有写void

方法名: 必须

() : 必须

String[] args: 根据实际需要 可以有 也可以没有

{} :必须

方法调用

1.使用方法的三种方式

  1. 方法有static修饰:类名.方法名+参数列表[个数,顺序,类型必须一致]

  2. 方法没有static修饰:对象名.方法名+参数列表[个数,顺序,类型必须一致]

  3. 方法在同一个类中:方法名+参数列表[个数,顺序,类型必须一致]

参数列表: 传入对应类型的数据

2.注意事项:

1)对于方法的使用者而言,无需关心方法内部的实现

  1. 同一个类中:静态方法不能调用非静态的方法

  2. 同一个类中:非静态方法可以调用静态方法

方法的返回值

方法在调用完成以后,如果没有返回值,方法的返回值类型为void,如果方法有返回值,此时需要将方法运行后的结果返回给方法的调用方,调用可以使用对应的类型接收方法的执行结果;

基本语法:

方法内部的最后一句代码返回该方法的运行结果

return 值/变量/表达式;

注意:

​ 1.如果方法设置了返回值类型,方法内部必须有return语句返回对应类型的值/变量/表达式;(return后返回的类型必须与方法上的返回值类型一致)

​ 2.return语句后不能再有其他执行语句

3.如果方法内部有条件判断 此时充分考虑如果条件不满足 方法是否还有返回值,保证结构的完整;

方法重载

概念:

在同一个类中,方法名相同,参数列表不同的方法称为方法的重载。

目的:

方法的重载的方法一般都具有相类似的功能,只是参数列表不同,与返回值类型无关,返回值类型可以不同,为了在使用时方便记忆同种类似功能的方法;

上一篇:day02


下一篇:java入门安装开发环境(Day02)