变量
定义变量:
数据类型 变量名 = 数据值;
分析:
数据类型:限定了变量能储存的数据的类型.如(int 整数 double 小数 string 字符串 char 字符).
变量名:就是这个储存空间的名字 作用:方便以后使用
数据值:真正存在变量中的数据.
等号:赋值,把右边的数据赋值给左边的变量中
例: int a = 10;这样a的值就是10
使用变量:
变量可用于输出打印,参与计算,修改记录的值
使用的场景:
重复使用某个值,某个数据经常发生变化
变量的注意事项:
一个变量只能储存一个值
变量名不允许重复定义
一条语句可以定义多个变量
变量在使用之前一定要进行赋值
变量氛围两种,成员变量和局部变量。
成员变量:在main方法下的变量叫做成员变量,只要在方法内都可使用
局部变量:在某一个方法中创建的变量,只能在方法内使用
流程控制
流程控制语句:
分三种结构(顺序结构) (分支结构) (循环结构)
顺序结构:自上面而下的执行程序(默认就是从上而下可以不管)
分支结构:根据条件,选择对应的代码执行(if switch )
if和switch为判断流程语句,根据判断结果去执行相应的语句。
if语句有三种不同的格式
if语句格式{
第一种:这种情况执行流程就是先判断关系表达式是true如果为true就执行大括号内的语句体,如果为false就不执行语句体继续按照顺序结构执行其他语句。
if(关系表达式){
语句体
}
第二种:这种情况执行流程就是先判断关系表达式是true如果为true就执行大括号内的语句体1,如果为false就执行else内的语句体2然后再继续按照顺序结构执行其他语句。
第三种:首先计算关系表达式1的值如果为true就执行语句体1如果为false就计算关系表达式2的值如果为true就执行语句体2如果为false就执行关系表达式3的值依次类推。如果都为false就执行语句体N+1
if(关系表达式1){
语句体1
}else if(关系表达式2){
语句体2
}else{
语句体N+1
}
}
switch的语句格式:
switch(表达式){
case 值1;
语句体1;
break;
case 值2;
语句体2;
break;
…
default:
语句体n+1
break;
JDK新特性:
int number=1;
switch(number){
case 1 ->{
语句体1;
}
case 2->{
语句体2;
}case 3->{
语句体3;
}default ->{
语句体4;
}
}
如果你switch语句里case内只有一条语句的话可以再次简化:
int number = 10;
switch(number){
case 1 -> 语句体1;
case 2 -> 语句体2;
case 3 -> 语句体3;
default ->语句体4;
}
switch执行流程:
首先计算表达式的值,依次和case后面的值进行比较,如果有对应的值就会执行相应的语句,在执行的过程中,遇到break就会结束。如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后结束整个switch语句。
switch格式说明:
表达式(称为将要匹配的值)取值类型byte,short,int,char,String ; case后面跟的是要和表达式进行比较的值(称为被匹配值);break表示中断结束的意思,用来结束switch语句。default表示所有情况都不匹配的时候就执行该地方的内容,这里和if语句的else相似(default相当于是个备胎,在语句中可以省略不写,代码不会报错);case后面的值只能是字面量,不能是变量;case给出的值不能重复。
如果要对一个范围进行判断就用if的三种格式如果是把有限的东西列出来任选其一这种情况就用switch。
循环结构:控制某段代码重复的执行(for while do-while)
for while……等属于循环控制语句,总的来说就是根据循环条件去进行一个语句的循环
for循环格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
for循环执行流程:
1.执行初始化语句。2.执行条件判断语句,看其结果是true还是false,如果是false循环结束,如果是true,执行循环体语句。3.执行条件控制语句。4回到第2条继续执行判断语句。
while循环格式:
while(条件判断语句){
循环体语句;
条件控制语句;
while循环执行流程:
1.执行初始化语句。2.执行条件判断语句,看其结果是true还是false,如果是false循环结束,如果是true,执行循环体语句。3.执行条件控制语句。4回到第2条继续执行判断语句。(这个是和for语句一样的)。
for和while的区别:
for循环中:知道循环次数或者循环的范围就使用for循环。
while循环:不知道循环的次数和范围,只知道循环的结束条件就使用while循环。
最后还有一个do……while格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件语句);
do……while执行方式:就相当于是先执行一次语句再去判断true或者false选择继续循环还是结束当前循环执行下面的语句。
for while和do……while的无限循环:
for无限循环格式:
for(;;){
循环体语句;
}
while无限循环格式:
while(true){
循环体语句;
}
do……while无限循环格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(true);
跳转控制语句:在无限循环中会有两个关键字continue,break:
continue跳过本次循环,继续执行下次循环:在执行循环的时候语句执行遇到continue的时候就会自动跳转回条件判断语句不执行下面的语句重新循环。
break:结束整个循环:在循环执行的时候遇到break之后直接停止执行循环体下面的语句直接跳出循环体,继续按照顺序结构执行下面其它的语句。
数组
什么是数组:
简单说,数组就是一个用来存储固定大小和类型元素的容器能存放多个数据,可以通过调用它的索引把对应索引的元素拿出来使用。
数组也分两种,一种是知道内容的,一种是不知道里面写什么内容但是知道长度的。
数组创建格式:
静态初始化,知道数组内容的创建格式为 :数据类型 [] 数组名 = new 数据类型 [] {1,2,3,4,5,6};
动态初始化,在不知道数据内容,但直到长度的时候创建格式为:数据类型 [] 数组名 = new 数据类型 [长度]
数组中的元素需要通过数组的索引来获取,数组的索引分别对应的是{1,2,3,4,5,6}数组的索引是从0开始的。
[0] [7] [2] [8] [4] [5]
想要的到数组里面的元素可以直接把数组索引赋值给一个变量,也可以通过循环得到数组内的每一个索引对应的元素,代码示范:
//创建数组
int [] arr = new int []{1,2,3,4,5,6}
//用for循环遍历数组
for(int i = 0; i < arr.length; i++) {
//循环中的 i 是索引; arr.length是数组长度;arr[i]表示数组元素。
int value = arr[i];
//这里打印输出
sout(value);
}
数组主要作用就是存储数据。注意事项:
数组一旦定义长度不能更改;数组索引从0开始到length-1结束;可以通过arr.length来获取数组长度。
数组可定义的数据类型:整数类型,浮点数(小数)类型,字符字符串类型……所有类型的数据。
方法
什么是方法:
Java方法是语句的集合,它们在一起执行一个功能。
- 方法是解决一类问题的步骤的有序组合
- 方法包含于类或对象中
- 方法在程序中被创建,在其他地方被引用
方法的优点
- 使程序变得更简短而清晰。
- 有利于程序维护。
- 可以提高程序开发的效率。
- 提高了代码的重用性。
方法定义:
修饰符 返回值类型 方法名 (形式参数) 方法体 返回值参数
例:public static int max (int num1,intnum2){
(修饰符) (返回值类型)(方法名) (参数列表)
( int result;
if( num1 > num2 ){
result = num 1;
}else{
result = num 2; 方法体)
}
return result;(返回值)
}
方法就是你在写代码的过程中需要重复用到一串代码来做什么,这个时候为了节省时间和代码长度,我们就可以把需要重复用到的代码拿出来单独写成一个方法,需要的时候直接调用方法即可。
注意事项:
方法不调用就不执行
方法与方法之间是平级关系,不能互相嵌套定义
方法的编写顺序和执行顺序无关
void是一个关键字,如果返回值类型的地方写void的话就相当于没有返回值
return语句下面,不能编写diamagnetic,因为永远执行不到,属于无效的代码。
如果遇到需要用同一个方法解决不同数据类型的问题时,可以使用方法重载
方法重载就相当于是,如果你在创建方法的时候需要用到同一个方法名去求不同的数据类型的结果就可以使用方法重载。
return关键字:方法没有返回值:可以省略不写。如果写,表示结束方法
方法有返回值:必须要写。表示结束方法和返回结果。
变量作用域:
变量的范围是程序中该变量可以被引用的部分。
方法内定义的变量被称为局部变量。
局部变量的作用范围从声明开始,直到包含它的块结束。
局部变量必须声明才可以使用。
方法的参数范围涵盖整个方法。参数实际上是一个局部变量。
for循环的初始化部分声明的变量,其作用范围在整个循环。
构造方法()
构造方法(Constructor)是用于创建对象的时候,虚拟机会自动调用构造方法,作用是给成员变量进行初始化的。
构造方法特点:
- 方法名与类名相同:构造方法的名字必须和类名一致。
- 没有返回类型:构造方法没有返回类型,连
void也不能写。 - 没有具体返回值:不能由retrun带回结果。
- 在创建对象时自动调用:每次使用
new创建对象时,都会自动调用构造方法。 - 可以重载:可以为同一个类定义多个构造方法,但这些构造方法的参数列表必须不同(即构成重载)。
不管你是否自定义构造方法,所有的类都有构造方法,因为 Java 自动提供了一个默认构造方法,默认构造方法的访问修饰符和类的访问修饰符相同(类为 public,构造函数也为 public;类改为 protected,构造函数也改为 protected)。
一旦你定义了自己的构造方法,默认构造方法就会失效。
构造方法注意事项:
1.构造方法的定义
如果没有定义构造方法,系统将给出一个默认的无参数的构造方法。
如果定义了构造方法,系统将不再提供默认的构造方法。
2.构造方法的重载
带参构造方法,和无参数构造方法,两者方法名相同,但是参数内容不同,这叫做构造方法的重载
3.推荐使用方式
无论是否使用,都手动书写,无参数给构造方法,和带全部参数的构造方法。
构造方法分为两种,第一种是无参数构造方法:初始化对象时,成员变量的数据均采用默认值
有参数构造方法:在初始化对象的时候,同时可以为对象进行赋值。





