变量名规范:首字母小写,后面每个单词首字母大写(小驼峰)helloWorld
方法变量名规范:同变量名
常量:在程序运行期间,固定不变的量
常量分类
-
字符串常量:凡是用双引号引起来的部分,叫做字符串常量 例如:“abc” "hello"
-
整数常量:直接写上的数字,没有小数点 例如:100,2000,0,-250
-
浮点型常量:直接写上的数字,有小数点 例如:2.5
-
字符常量:凡是用单引号引起的单个字符,就是字符常量 例如:’A‘ ' B' '中' ’9‘ 不能为空,有且只有一个字符
-
布尔常量:只有量中取值 true和false
-
空常量:null,代表没有任何数据
基本数据类型:
-
整数 byte short int long -----------默认interesting,使用龙加后缀L
-
浮点数 float double --------默认double,使用float加后缀F
-
字符 char
-
布尔 boolean
引用数据类型:**类,数组,端口
变量:程序运行期间,内容可以发生改变的量
创建一个变量 : 变量类型 变量名称 =数据值
-
变量名称=数据值;
day02
a 97
-
如果创建多个变量,变量名称不能重复
-
对于float和long类型,加字母后缀F,L
-
如果使用byte和short变量,右侧数据值不能超过左侧类型的范围
-
作用域:定义变量的第一行开始,到直接所属的大括号结束为止
public class HelloWorld{
public static void main (String[] args){
{int num6=10
System.out.println(num6);
}
//System.out.println(num6);超出大括号范围,变量不能使用
}
}
创建变量:
//同时创建三个int 变量,各自赋值
int a,b,c;
a=1;
b=2;
c=4;
//同时创建三个int变量,并且同时各自赋值
int x=1,y=2,c=3;
System.out.println(a);
System.out.println(b);
System.out.println(c);
数据类型转换
System.out.ptintln(1024);//这就是一个整数,默认int类型
System.out.ptintln(2.3);//这就是一个浮点数,默认就是double类型
当数据类型不一样时,就会发生数据类型转换。
自动类型转换(隐式)
-
特点:代码不需要特殊处理,自动完成。
-
规则:数据范围从小到大
//左边long右边int
//int--->long,符合了数据范围从小到大的要求
//发生自动转换
long num1=100;
System.out.println(num1);
//左边double右边float
//float--->double,符合从小到大的规则
//发生了自动类型转换
double num2=2.5F;
System.out.println(num2);
//long--->float,范围更大的是float,符合从小大大的规则
//发生自动转换
float num3=20L
System.out.println(num3);
强制类型转换(显式)
特点:需要进行特殊的格式处理,不能自动化完成 格式:范围小的类型 范围小的变量名 =(范围小的类型)原本范围大的数据
注意事项:
-
强制类型转换一般不推荐使用,可能有精度损失,数据溢出
-
byte/short/char着三种类型都可以发生属性运算,例如加法'+'
-
byte/short/char着三种类型在运算的时候,都会被首先提升成为int类型,然后计算
-
Boolean不能发生转换
//long-->int,不是从小到大
int num=(int)100L;
System.out.println(num);
//long强制转化为int类型
int num=(int)600000000000L;
System.out,println(num);//数据溢出
double--->int,强制类型转换
int num3=(int)3.99;
System.out.println(num3);//3,不是四舍五入,所有的小数位都会被舍弃掉
char zifu1='A';//这是一个字符型变量,里面写的是大写字母'A'
Syste.out.println(zifu1+1);//66,也就是大写字母A被当作65处理
//char类型运行了数学运算,就hi按一定的规则翻译为数字
byte num4=40;
byte num5=50;
//byte+byte---->int+int---->int
int result1=num4+num5;
System.out.println(result1);//90
//btye+short----->int+int------->int
short num6=60;
//int强制转换为short:必须保证逻辑上真实大小本来就没有超过收人头范围,否则会发生数据溢出
short result2=(short)(num4+num6);
1.算数运算符
加减乘除:+ — * /
加号'+'的三种用法:
-
对于数值来说,计算之前,char会被提升为int,然后计算
-
char类型字符,和itn类型数字,之间的对照关系表:ASCLL,UNicde
-
对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。
String str="java";
System.out.println(str2+20+30);//java2030
System.out.println(str2+(20+30));//java50
自加自减
可以单独使用也可以混合使用
-
++num:先++,变量马上加1,然后打印结果,先加后用
-
num++:先使用变量,然后再让变量+1,先用后加
2.复制运算符
注意事项:
-
只有变量可以赋值,常量不可以 //50=20是不可以的
-
复合赋值运算符其中隐含了一个强制类型转换
byte num=30;
//num=byte+int
//num=int+int
//num=(byte)int
num+=5
System.out.println(num);
3.比较运算符
如果进行多次判断,不能连着写
4.逻辑运算符
-
与(并且)&& 全都是true才是true:否则就是false
-
或(或者)|| 至少一个是true,才是true:全部是false才是false
-
非(取反)! 本来是true,变成false:本来是false,变成true
&&,|| ,具有短路效果:如果根据左边已经可以判断得到最终结果,那么右边的代码不在执行
三元运算符
-
一元:只要一个数据就可以进行操作的运算符 例如:取反!,自增,自减
-
二元:需要两个数据才可以进行操作的运算符 例如:加法,赋值
-
三元:要三个数据才可以进行操作的运算符
格式:
数据类型 变量名称 =条件判断?表达式A:表达式B;
如果是true将表达式A赋值给左侧变量
如果是false将表达式B赋值给左侧变量
int a=20;
int b=10;
//数据类型 变量名称 =条件判断?表达式A:表达式B;
int max=a>b?a:b;
注意事项:
必须同时保证表达式A和B都符合左侧数据类型的要求
三元运算符的结果必须被使用
int result=3>4?2.5:20;//错误写法,变量类型不同
System.out.println(a>b?a:b);//正确写法,直接输出
定义方法
定义方法的格式:
public static void 方法名称(){
方法体 }
方法名称的命名规则和变量一样,使用小驼峰。
方法体:也就是大括号当中可以包含任意条语句。
方法定义注意事项:
-
方法定义的先后顺序无所谓。
-
方法的定义不能产生嵌套包含关系。
-
方法定义好了之后,不会执行,如果想执行,一定要进行方法的调用。
方法调用的格式:
public class Demo(){
public static void main(String[] args){
cook();//调用
}
//定义方法
public static void cook(){
System.out.println("xicai");
System.out.println("qiecai");
}
}
对于byte/short/char/三种类型来说如果右侧赋值的数值没有超过范围,那么Javac编译器将会自动为我们补上一个(byte)(short)(char)
如果在给变量赋值的时候,右侧的表达式全都是常量,没有变量,那么编译器javac将hi直接将若干个常量表达式计算得到结果。
short result=13;//右侧的常量数值没有超过左侧的范围,所以正确。
判断语句1---if
if语句第一中格式:if
if(关系表达式){
语句体;
}
第二种格式:if....elsed
if(关系表达式){
语句体1;
}else{
语句体2;
}
int num=13;
if(num%2==0){
System.out.println("偶数");
}
else{
System.out.println("基数");
}
if(关系表达式){
语句体1;
}else if(判断语句2){
语句体2;
}else if(判断语句n){
语句体n;
}
第三章 选择语句
3.1选择语句---switch
格式
switch(表达式){
case1常量值:
语句体1;
break;
case2常量值2:
语句体2;
break;
.....
default:
语句体n;
break;
}
int num=1;
switch(num){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 2:
System.out.println("星期三");
break;
case 3:
System.out.println("四");
break;
defualt:
System.out.println("数据不合理");
break;
}
switch使用注意事项:
1.多个case后面的值不可以重复;
2.switch后面小括号但当中只能是下列数据类型:
引用数据类型:String字符串,enum枚举
第四章循环语句
循环的结构分为资格部分:
-
初始化语句:在循环开始最初执行,而且只做唯一一次。
-
条件判断:如果成立,则循环继续;如果不成立,则退出循环
-
循环体:重复要做的事情内容,若干行语句。
-
步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次。
for循环
for(int i=1;i<=100;i++){
System.out.println("你好");
}
while循环语句
标准格式
while(条件判断){
循环体;
}
扩展格式
初始化语句;
while(条件判断){
循环体;
步进语句;
}
int i;
while(i<=10){
System.out.println("你好");
i++
}
do-while循环
标准格式
初始化语句;
do{
循环体;
}while(条件判断);
扩展格式
do{
循环体;
步进表达式;
}while(布尔表达式);
三种循环的区别
-
如果条件判断从来没有满足过,那么for循环和while循环执行0此,但是do-while循环至少会执行一次
-
for循环的变量在小括号当中定义,只有循环内部才能使用
break关键字:
-
可以用在switch语句中,一旦执行,整个switch语句立刻结束
-
还可以用在循环语句中,一旦执行,整个循环语句立即执行
凡是次数确定的场景多用for循环;否则多用while循环;
另一种循环控制语序continue关键字
一旦执行立刻跳过当前循环剩余内容,马上开始下一次循环
idea常用快捷键
ALT+Enter | 导入包,自动修正代码 |
---|---|
Ctr+y | 删除光标所在行 |
Ctrl+D | 复制光标所在行内容 |
Ctrl+ALT+L | 格式化代码 |
ctrl+/ | 单行注释,再按取消注释 |
定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称,.......){
方法体 ;
return 返回值;}
-
修饰符:现阶段的固定写法public static
-
返回类型值:也就是方法最终产生的数据结果是什么类型
-
参数类型:进入方法的数据是什么类型
-
参数名称:进入方法的数据对应的变量名称
-
PS:参数如果有多个,使用逗号分隔
-
方法体:方法需要做的事情,若干行代码
-
return:两个作用,第一停止当前方法,第二将后面的返回值还给调用处
-
返回值:也就是方法执行后最终产生的数据结果
-
注意:return后的返回值必须和方法名称前面的返回值类型保持对应
定义一个两个int数字相加的方法。三要素:
-
返回值类型:int
-
方法名称:sum
-
参数列表:int a , int b
sum(a:10,b:20)//单独调用
System.out.prntln(sum(10,20))//打印调用
int number=sum(15,25,);//赋值打印
System.out.println("变量的值:"+number);//赋值打印
public static int sum(int a;int b){
int result=a+b;//方法体
return result;//返回值
}
方法的三种调用方法:
-
单独调用:方法名称(参数);
-
打印调用:System.out.println(方法名称(参数));
-
赋值调用:数据类型 变量名称=方法名称(参数);
对比有参数和无参数
-
有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的额时候,就是有参
-
无参数:小括号当中留空。一个方法不需要任何数据条件,自己能独立完成任务,就是午餐。
对比有返回值和无返回值
有返回值:带着返回值返回 ----可以使用单独调用,打印调用,赋值调用
无返回值:什么都不带 ------只能使用单独调用
{//有返回值的调用
int num=getsum(10,20);//赋值调用
System.out.getsum(num);//赋值调用
System.out.println(getsum(2,3));//打印调用
getsum(3,5);//直接调用
//无返回值
int num2=printSum(10,20)//错误
printSum(10,20)//单独调用
}
//定义一个方法,负责两个数字相加,返回值int,谁调用就给谁结果,三种调用方法都可以用
public static int getsum(int a,int b){
int result=a+b;
return result;
}
//没有返回值,不会把结果告诉任何人,
//而是自己打印输出,只能用单独调用
public static void printSum(int a,int b){
int result=a+b;
System.out.println("结果是"+result);
}
重载(Overload)
方法重载的基本使用方法
方法重载:多个方法的名称相同,但是参数列表不一样。
好处:只需要记住一个方法名称,就可以实现类似的多功能
//调用
System.out.println(sum(10,20));
System.out.println(sum(10,20,30));
//定义方法
public ststic int sum(int a,int b){
System.out.println("有两个的参数方法执行")
return a+b;
}
public ststic int sum(int a,int b,int c){
System.out.println("有三个的参数方法执行")
return a+b;
}
相关因素:
-
参数个数不同
-
参数类型不同
-
参数的多类型顺序不同
元素无关:
-
与参数的名称无关
-
第四章循环语句
循环的结构分为资格部分:
-
初始化语句:在循环开始最初执行,而且只做唯一一次。
-
条件判断:如果成立,则循环继续;如果不成立,则退出循环
-
循环体:重复要做的事情内容,若干行语句。
-
步进语句:每次循环之后都要进行的扫尾工作,每次循环结束之后都要执行一次。
for循环
for(int i=1;i<=100;i++){
System.out.println("你好");
}
while循环语句
标准格式
while(条件判断){
循环体;
}
扩展格式
初始化语句;
while(条件判断){
循环体;
步进语句;
}
int i;
while(i<=10){
System.out.println("你好");
i++
}
do-while循环
标准格式
初始化语句;
do{
循环体;
}while(条件判断);
扩展格式
do{
循环体;
步进表达式;
}while(布尔表达式);
三种循环的区别
-
如果条件判断从来没有满足过,那么for循环和while循环执行0此,但是do-while循环至少会执行一次
-
for循环的变量在小括号当中定义,只有循环内部才能使用
break关键字:
-
可以用在switch语句中,一旦执行,整个switch语句立刻结束
-
还可以用在循环语句中,一旦执行,整个循环语句立即执行
凡是次数确定的场景多用for循环;否则多用while循环;
另一种循环控制语序continue关键字
一旦执行立刻跳过当前循环剩余内容,马上开始下一次循环
idea常用快捷键
ALT+Enter | 导入包,自动修正代码 |
---|---|
Ctr+y | 删除光标所在行 |
Ctrl+D | 复制光标所在行内容 |
Ctrl+ALT+L | 格式化代码 |
ctrl+/ | 单行注释,再按取消注释 |
定义方法的完整格式:
修饰符 返回值类型 方法名称(参数类型 参数名称,.......){
方法体 ;
return 返回值;}
-
修饰符:现阶段的固定写法public static
-
返回类型值:也就是方法最终产生的数据结果是什么类型
-
参数类型:进入方法的数据是什么类型
-
参数名称:进入方法的数据对应的变量名称
-
PS:参数如果有多个,使用逗号分隔
-
方法体:方法需要做的事情,若干行代码
-
return:两个作用,第一停止当前方法,第二将后面的返回值还给调用处
-
返回值:也就是方法执行后最终产生的数据结果
-
注意:return后的返回值必须和方法名称前面的返回值类型保持对应
定义一个两个int数字相加的方法。三要素:
-
返回值类型:int
-
方法名称:sum
-
参数列表:int a , int b
sum(a:10,b:20)//单独调用
System.out.prntln(sum(10,20))//打印调用
int number=sum(15,25,);//赋值打印
System.out.println("变量的值:"+number);//赋值打印
public static int sum(int a;int b){
int result=a+b;//方法体
return result;//返回值
}
方法的三种调用方法:
-
单独调用:方法名称(参数);
-
打印调用:System.out.println(方法名称(参数));
-
赋值调用:数据类型 变量名称=方法名称(参数);
对比有参数和无参数
-
有参数:小括号当中有内容,当一个方法需要一些数据条件,才能完成任务的额时候,就是有参
-
无参数:小括号当中留空。一个方法不需要任何数据条件,自己能独立完成任务,就是午餐。
对比有返回值和无返回值
有返回值:带着返回值返回 ----可以使用单独调用,打印调用,赋值调用
无返回值:什么都不带 ------只能使用单独调用
{//有返回值的调用
int num=getsum(10,20);//赋值调用
System.out.getsum(num);//赋值调用
System.out.println(getsum(2,3));//打印调用
getsum(3,5);//直接调用
//无返回值
int num2=printSum(10,20)//错误
printSum(10,20)//单独调用
}
//定义一个方法,负责两个数字相加,返回值int,谁调用就给谁结果,三种调用方法都可以用
public static int getsum(int a,int b){
int result=a+b;
return result;
}
//没有返回值,不会把结果告诉任何人,
//而是自己打印输出,只能用单独调用
public static void printSum(int a,int b){
int result=a+b;
System.out.println("结果是"+result);
}
重载(Overload)
方法重载的基本使用方法
方法重载:多个方法的名称相同,但是参数列表不一样。
好处:只需要记住一个方法名称,就可以实现类似的多功能
//调用
System.out.println(sum(10,20));
System.out.println(sum(10,20,30));
//定义方法
public ststic int sum(int a,int b){
System.out.println("有两个的参数方法执行")
return a+b;
}
public ststic int sum(int a,int b,int c){
System.out.println("有三个的参数方法执行")
return a+b;
}
相关因素:
-
参数个数不同
-
参数类型不同
-
参数的多类型顺序不同
元素无关:
-
与参数的名称无关
-