学习目标:
1、数据类型转换、
2、算数运算符、
3、赋值运算符、
4、比较运算符、
5、逻辑运算符、
6、三元运算符、
7、方法定义和调用
一、数据类型转换:
1、数据类型转换分为:隐式类型转换、强制类型转换。
隐式转换:是将容量小的类型自动转成容量大的数据类型、
顺序为:byte 、short、char、int、long、float、double
例: // 定义一个byte类型的数据
byte b = 123;
// 定义一个int类型的空间,然后将byte空间中的值赋值给int空间中
int i = b;
System.out.println(i);
强制转换:可以将大的数据类型保存到小的数据类型空间里
转换格式:需转换的数据类型 变量名 = (需要转成的数据类型)(被转的数据);
例:Int a = 20;
Byte b = (byte)(a);
转换原理:如下图
2、ASCII 编码表:ASCII码表:它是采用一个字节表示一个字符数据(标点符号,英文字母,其他的特殊符号,数字等)
张表中规定了生活中所有的字符和二进制之间的对应关系
事例:
public static void main(String[] args) {
//字符类型变量赋值整型数据
char c = 97;
System.out.println(c); //显示a
//整型类型遍历赋值字符数据
int i = 'a';
System.out.println(i); //显示97
}
二、算数运算符:
例:
public static void main(String[] args) {
// 定义两个变量
int a = 9;
int b = 4;
// 打印各类运算的运算结果
System.out.println(a + b); //显示:13
System.out.println(a - b); //显示:5
System.out.println(a * b); //显示:36
System.out.println(a / b); //显示:2
System.out.println(a % b); //显示:1
/*
演示java中的算数运算的规律:
1、运算符号两侧的数据类型一致时,最终的运算结果依然是当前的数据类型。
2、运算符号两侧的数据类型不一致时,最终的运算结果为较大的数据类型。
*/
System.out.println( 4321 / 1000 * 1000 );// 4000
System.out.println( 4321 / 1000.0 * 1000 );// 4321.0
}
前置++、++a 先运算再赋值。
后置++、a++先赋值在运算
变量a++ :变量a 先把值1 赋值给变量b,然后变量a 再加1。先使用,后计算
变量++c :变量c 先自己加1,然后将结果赋值给变量空间d。先计算,后使用
例:
public static void main(String[] args){
// 定义变量,演示后置自增独立运算结果
int a = 10;
a++;
System.out.println(a); // 11 如果为--运算则结果为 9
// 定义变量,演示后置自增独立运算结果
int b = 10;
++b;
System.out.println(a); // 11 如果为--运算则结果为 9
}
重要:和其他运算符混合运算:
如果++或者--在变量的后置位置,先拿变量参与操作,然后变量 做++或者--运算;
如果++或者--在变量的前置位置,变量先做++或者--运算,然后拿变量参与操作;
变量a++ :变量a先把值1赋值给变量b,然后变量a再加1。先使用,后计算
变量++c :变量c先自己加1,然后将结果赋值给变量空间d。先计算,后使用
例:
public static void main(String[] args) {
int a = 1;
int b = a++;
System.out.println(a);//计算结果是2
System.out.println(b);//计算结果是1
int c = 1;
int d = ++c;
System.out.println(c);//计算结果是2
System.out.println(d);//计算结果是2
// 先口算i 和 y的结果,然后运行程序看结果是否和自己计算的一致。
int i = 5;
int y = (i++)+(i++)+(++i)+(++i)+(i++);
// 5 6 8 9 9
System.out.println(i);//10
System.out.println(y);//37
}
+ 符号在字符串中的操作:
+ 符号在遇到字符串的时候,表示连接、拼接的含义。字符串数据可以和任何的数据类型进行拼接的运算。拼接完成后会产生一个新的更长的字符串。
"a"+"b"的结果是“ab”,连接含义,表示将两个字符串连接到一起成为一个新的字符串。
例:
public static void main(String[] args){
System.out.println("5+5="+5+5);//输出5+5=55
System.out.println("abc" + 123);// 输出abc123
}
三、赋值运算符:
“=”赋值运算符,就是将符号右边的值,赋给左边的变量。
“==” 这个是判断二个值是否相等、注意区分。
类似“+=” 运算符自带转换
例:
public static void main(String[] args) {
// 演示普通赋值运算
int x = 5; // 将=号右侧的数据5赋值给=号左侧的x变量空间中
System.out.println("x=" + x); // 结果为5
int y = 5 + 5; // 将=号右侧表达式的运算结果赋值给=号左侧的y变量空间中。
System.out.println("y=" + y);
// 演示混合赋值运算
int a = 5;
a += 5; // 相等于 a = a + 5;
System.out.println("a=" + a);// 拼接打印数据 a的结果为10
/*
因为加或乘两种运算方式不管是左侧和右侧还是右侧和左侧运算,最终都不会改变运算的结果。因此
上述代码并不能完成验证出混合运算的结论是否正确,我们使用减或除法运算再次验证一次 */
int b = 10;
b -= 5; // 相等于 b = b - 5;
System.out.println("b=" + b);// 拼接打印结果为5。验证出混合赋值运算的运算规律。
// 验证混合运算中的强制类型转换
byte by = 5;
// by = by + 5; // 程序报错,因为运算结果为int类型,不能赋值给byte类型
by += 5; // by = (byte)(by + 5); 因为混合运算有强制类型转换,所以OK
System.out.println("by = " + by);
}
四、比较运算符:
比较运算就是指数学中的数据的大小关系比较。比较的结果只能是true 或 `false`
例:
public static void main(String[] args) {
// 定义变量,验证比较运算的运算规律
int a = 3;
int b = 5;
System.out.println( a > b );// false
System.out.println( a < b );// true
System.out.println( a = b );// 5 =号表示的赋值,不是比较运算
System.out.println( a >= b );// true
System.out.println( a <= b );// true
System.out.println( a != b );// false
System.out.println( a == b );// true ==号表示比较运算
}
五、逻辑运算符:
逻辑运算符,也叫做布尔运算。是用来连接两个布尔类型结果的运算符,逻辑运算的结果并不表示数值大小,运算结果都是布尔值true或者false。也就是数学中的 || && ! 运算。
六、三元运算符:
三元远算符格式:数据类型 变量名 = 布尔类型表达式 ? 结果1 : 结果2;
三元运算符计算方式:
布尔类型表达式结果为true时,将结果1赋值给变量。
布尔类型表达式结果为false时,将结果2赋值给变量。
例:
public static void main(String[] args) {
// 定义两个变量。使用三元运算求出两个数值中较大的值
int a = 3;
int b = 5;
int max = a > b ? a : b; // 使用三元运算求出较大的值
System.out.println("max = " + max ); // 输出打印较大的值5
// 思考,如何使用三元运算求出3个数中较大的值
int c = 7; // 提供第三个变量
//先比较出两个数中较大的,然后和第三个数进行比较
int max1 = max > c ? max : c;
System.out.println("max1 = " + max1 );// 输出打印较大的值7
// 另外一种方式,不建议使用
int max2 = ( a > b ? a : b ) > c ? ( a > b ? a : b ) : c;
System.out.println("max2 = " + max2);// 输出打印较大的值7
}
七、方法的创建与调用:
方法定义:也叫函数、指的是一个独立封装起来能够独立运行并且某些功能的代码。定义在
类内main 外。和main 平级。
方法的好处:提高代码复用性、提高开发效率、后期维护升级方便
定义格式:
方法修饰符 方法返回值类型 方法名(参数列表){
方法体代码;
return 返回值;
}
方法的调用:方法定义完后、在主方法main 调用:方法名();
return 返回值是方法的返回值。 return;结束方法、return 后面不能直接书写其他代码。
注:后面会学到方法的重载(同一个类、同名不同参)和方法的重写(继承类、同名同参同返回值、重写方法体)<了解>
例:
public static void main(String[] args) {
// 定义两个变量,用来比较大小关系
int a = 3;
int b = 5;
//调用定义的方法 , 并将数据传递给方法
getMax( a , b );
}
//定义方法,使用三元运算求出两个数据中较大的一个
public static int getMax( int a , int b ) {
// 使用三元运算求出两个数据中较大的一个
int max = a > b ? a : b;
// 将求出的较大的数据返回给调用者
return max;
}