基本语法:
switch语句
可以用键盘录入int,String类型,但是Scanner类没有直接提供录入字符char类型的数据
为了编码方便,有时可以利用case穿透
3)循环控制语句
while语句
格式:
初始化语句;
while(条件表达式){
循环体语句;
步长语句;}
do-while语句
格式:
初始化语句;
do{
循环体语句;
步长语句;
}while(条件表达式) ;
for语句
基本格式:
for(初始化语句;条件表达式;步长语句){
循环体语句;}
扩展格式:
for(){
for(){
}} //for嵌套,外层循环控制行数,内层循环控制列数
*关于while循环与for循环的区别:
1)从内存角度考虑:for循环优于while循环,循环语句结束之后,变量就会被Jvm里面GC(垃圾回收器)回收掉
释放掉内存,内存空间不会消耗太多!而while循环,是可以访问那个变量,它不会立即被回收掉!
2)从应用场景来考虑:
如果明确范围/次数,使用for循环 (优先考虑for循环,再考虑while循环)
如果不知道循环多少次,这个时候使用while循环
*关于while循环与do-while循环语句区别:
do-while至少循环一次
*优先for循环,其次while循环,最后才考虑do-while循环
4)跳转控制语序
break语句:
中断,结束语句
注意:break只能在循环语句或者switch语句中使用
continue语句:
停止当前循环,立即进入下一次循环
注意:continue只能在循环语句中使用
9.数组
格式:
数据类型[]数组名称 //常用
数据类型 数组名称[]
数组的初始化:
1)动态初始化:指定数组长度,由系统给数组中的元素赋值
2)静态初始化:指定数组中的元素的值,由系统给数组指定长度
例如int[] arr =new int[]{1,2,3};简写int[]arr = {1,2,3};
动态初始化:
数据类型[] 数组名称 = new 数据类型[指定长度] ; //推荐
int[] arr = new int[2] ;
数据类型 数组名称[] = new 数类型[指定长度]; //注意 : 数组定义时不能动静结合
数组有length属性,可以通过 数组名称.length 获得数组长度
//String里没有length属性,但可以获得字符串长度,集合中也没有length属性
数组常遇见的异常:
ArrayIndexOutOfBoundsException : 数组角标越界异常
10.function(方法)
格式:
权限修饰符 静态修饰符 返回值 方法名(数据类型1 参数1,数据类型 参数2...){
return 结果;
} //返回值类型为void(没有具体返回值时为void)则没有return
调用方法:
1)单独调用 : 没有具体结果
2)输出调用 : 不好,将数据写死,直接输出的,不能对结果进行一下步的需求
3)赋值调用 : 可以针对结果下一步需求操作
关于定义方法的注意事项:
1)方法和方法是平级关系,不能再一个方法中再去定义一个方法
2)形式参数中,参数类型是一定要有的,否则报错
3)调用方法的时候,不需要带数据类型
4)书写方法中两个明确
①明确返回值类型
②明确参数类型以及参数个数
关于方法重载 :
定义多个方法时候,方法名相同,参数列表不同,并且与返回值无关!
参数列表不同:
1)参数个数不同
2)参数类型不同
11.面向对象
类是用来描述现实世界中的事物!
类是对象的抽象,对象是类的具体化,实例是类的另一个名称
一、普通类 :
1)//创建一个类
class 类名{
2)定成员变量
3)成员方法(){}
public class 测试类名{
4)创建一个类对象
类名 对象名 = new 类名();
5)给成员变量赋值
对象名.成员变量= ....
6)调用成员方法
对象名.成员方法名();
*成员变量与局部变量区别 : 书写位置、内存位置、生命周期和初始化不同
*成员变量名称和局部变量名称一致的情况下,采用就近原则
二、private封装
标准类写法:
成员变量全部私有化
提供公共的访问的成员方法
/*与普通类不同的是,封装需要在成员变量或者公共方法前设置权限private
然后添加公共成员方法将其包含进去,最后再给公共成员变量赋值或者调
用公共成员方法*/
三、构造方法
特点:
1)方法名和类名相同
2)没有返回值类型,连void都没有
3)没有具体的返回值
作用 : 给对象进行初始化
注意 : 如果写标准类时,没提供有(无)参构造方法,则系统默认提供无参构造方法
构造方法亦可重载
标准类写法 :
1)成员变量私有
2)提供有(无)参构造方法 //可以在有参构造方法里通过this关键字给成员变量赋值
3)提供getXxx/setXxx方法
四、形式参数
1)形式参数如果是基本数据类型: 形式参数的改变,对实际参数没有影响
2)形式参数是应用数据类型的话:形式参的改变,会直接影响实际参数
五、匿名对象
格式:
new类名();
好处:
1)一般,调用一次即可,不适合调用多次
2)调用完毕之后,会立即从内存释放掉,及时被GC垃圾回收器回收掉!
3)匿名对象它可以作为参数进行传递
应用 :
接口中,抽象类中应用较多