目录:JavaStudy02 数据类型转换、运算符、方法入门
Day02 数据类型转换、运算符、方法入门
今日内容
- 数据类型转换
- 算数运算符
- 比较运算符
- 逻辑运算符
- 三元运算符
- 简单方法定义和调用
教学目标
- 1.理解数据类型的强制转换
- 2.理解数据类型的自动转换
- 3.了解ASCII编码表
- 4.理解int类型和char类型的运算原理
- 5.理解运算符++ --的运算方式
- 6.理解**+符号**在字符串中的作用
- 7.理解比较运算符
- 8.理解逻辑运算符
- 9.掌握三元运算符的格式和计算结果
- 10.了解方法的概念
- 11.掌握无返回值无参数方法的定义格式
- 12.了解方法定义的注意事项
学习自测
得分率92%:Day02 数据类型转换、运算符、方法入门
第一章 数据类型转换
参与计算的数据的数据类型必须一致,不一致会发生转换。
1.1 自动转换
Java自动将取值范围小的类型自动提升成取值范围大的类型。
规则:byte、short、char→int→long→float→double
1.2强制转换
我们手动将取值范围大的类型强制降成取值范围小的类型。
转换格式:数据类型 变量名=(数据类型)被转数据值
注意:1.浮点→整数,损失精度;2.int→short,数据可能丢失
1.3 ASCII编码表
American Standard Code for Information Interchange): 美国信息交换标准代码。让计算机识别人类文字,文字对应十进制数。
0~9 =48~57
A~Z=65~90
a~z=97~122
public static void main(String[] args){
char x='A';
int y=1;
//字符类型和int类型计算
System.out.println(x+y); //a对应65,结果为66
}
第二章 运算符
2.1 算数运算符
6类7型:+、-、*、/、%、++、–,算术运算符得到的都是整数。
自增自减运算符:++i(变量前++)、i++(变量后++)
单独运算→++i和i++一样,变量+1
混合运算:
a=1;b=++a→a=2,b=2
a=1;b=a++→a=2,b=1
public class AutoIandDOperator{
public static void main(string[] args){
int a=1;
/*int b=++a;
System.out.println(a);//2
System.out.println(b);//2
*/
int b=a++;
System.out.println(a);//2
System.out.println(b);//1
}
}
+遇到字符串表连接
“a”+“b"→"ab”
“5+5=”+5+5 →5+5=55
2.2赋值运算符
将符号右边的值赋给左边变量。6型:=、+=、-=、*=、/=、%=。
i+=5→i=i+5
2.3比较运算符
两个数据间进行比较,输出为布尔值true/false。6型:=、>、<、>=、<=、!=。
2.4逻辑运算符
连接两个布尔类型结果,输出为布尔值true/false。3型:&&短路与、||短路或、!取反
2.5三元运算符
格式:数据类型 变量名=(布尔类型表达式?结果1:结果2)
布尔表达式结果为true,三元运算整体为结果1赋给变量;否则为结果2。
public class TernaryOperator {
public static void main (string[] args){
int i=(1>2?2;3);
System.out.println(i);//3
}
}
第三章 方法入门
3.1概述
方法就是把代码单独定义在一个大括号内,形成单独的功能,需要这个功能的时候,就可以调用,解决代码冗余现象。
3.2方法的定义
格式:
修饰符 返回值类型 方法名(参数列表){
代码...
return;
}
- 修饰符:目前固定写法:public static
- 返回值类型:目前固定写法:void
- 方法名:小驼峰,用来调用方法
- 参数列表:目前无参数
- return:方法结束。因为返回值是void,方法大括号内return可以不写。
例如:
public static void methodName(){
System.out.println("这是一个方法");
}
【注意事项】
1.方法定义顺序无所谓
2.方法与方法之间不能嵌套包含
3.方法定义好后不会执行,如果想执行,一定要调用
3.3方法的调用
调用定义好的方法才可以运行
public class HelloWorld
{
public static void main(String[] args)
{
//调用myHobby方法
myHobby();
}
//定义方法被main调用才可运行
public static void myHobby()
{
System.out.println("eat");
}
}
3.4调用联系
//三元运算方法
public class HelloWorld{
public static void main(String[] args){
ternaryOperator();
}
public static void ternaryOperator(){
int i=(1==2?7:9);
System.out.println(i);
}
}
运行结果
3.5注意事项
方法定义:
1.必须定义在一类中、方法外
2.方法不能定义在另一个方法里
public class Demo{
public static void main(String[] args){
}
//方法正确写法:类中mian方法外
public static void apple(){
System.out.pritln("苹果");
}
}
public class Demo{
public static void main(String[] args){
//方法错误写法:mian方法或其他方法内
public static void apple(){
System.out.pritln("苹果");
}
}
}
第四章 JShell脚本工具
是JDK9以来新特性
- When:只适合片段代码的测试,不愿写类和main方法,也不愿编译和运行时
- How:
第五章 扩展知识点
5.1 +=符号的发展
下面的程序有问题吗?
public class Demo{
public static void main(String[] args){
short i=1;
i+=1;
System.out.println("i");
}
}
i+=1→i=(short)(i+1)
因为+=是一个运算符,只运算一次带强制转换;
若i+=1换成逻辑上的i=i+1,则运算两次,i+1为int赋值给short i则报错。
5.2常量和变量的运算
下面的程序有问题吗?
public class Demo{
public static void main(String[] args){
byte b1=1;
byte b2=2;
byte b3=1+2;
byte b4=b1+b2;
System.out.println(b3);
System.out.println(b4);
}
}
b3可以输出,b4不可。
因为
b3=1+2,1和2为常量,javac编译器自动计算出结果3未超过byte取值范围;
b4=b1+b2,b1和b2是变量,javac编译器不确定计算机结果是否超出范围,因此会将结果默认为int,此时赋值范围大于byte则编译失败。