2021.1.4-1.9个人总结
1. !重点 if格式嵌套!!! :
if(表达式){
if(表达式1){
}else{
}
}else{
if(表达式2){
}else{
}
}
2. 循环结构语句:
for循环------- 明确循环次数(开发中使用最多)
普通for循环
for(初始化语句;条件表达式;步长语句){
循环体语句;
}
while循环----- 不明确循环次数/死循环(前提:结束条件的)
do-while循环 ---- 即使条件不成立,循环体至少执行一次
3.for 循环的嵌套格式:
for(初始化语句;条件表达式;步长语句){ // 外层控制行数
for(初始化语句;条件表达式;步长语句){ //内层循环控制列数
循环体语句;
}
}
内层循环for是外层循环for的循环体语句;
4.跳转控制语句:
break:
中断,结束,在switch语句中以及循环语句中使用居多!
continue:结束当前循环,立即进入下一次循环,一般在循环语句中使用居多!
return :
结束方法使用,一般需要具体的返回结果
有具体返回值类型 需要和return结合使用
//arr:表示一个数组
//数组中的某个元素
public static int getIndex(int[] arr,int key){
...业务逻辑判断
return 结果;
}
频繁使用最多的:break ,其次return(定义有具体返回值类型的方法)!!!
5. java方法(函数)的定义格式:
有返回值类型的方法定义
public static 具体的返回值类型 方法名(形式参数列表){
业务计算…
return 结果;
}
调用: 赋值调用
返回值类型(数据类型) 变量名 = 方法名(实际参数列表) ;
没有具体返回值类型的方法定义(根据实际需求场景判断)
public static void 方法名(形式参数列表){
逻辑分支语句
直接输出等等(不需要return语句)
单独调用:
方法名(实际参数列表) ;
6. 方法重载 重点!!! :
判断几个方法是否为重载方法----跟方法返回值无关!
看当前方法名是否相同,如果一致,还需要看当前参数列表是否一致,
方法重载: 属于设计层面 为了提高扩展功能 同一个方法可以接收不同类型的参数
只需要 通过jdk(API:Application Programming Interface :开发文档):学习Java常用类中方法(部分都是重载)
7.数组(一维数组)重点!!!:
数组:是可以存储同一种数据类型的元素
前提条件:必须属于同一种数据类型的
数组的定义格式:
数组的定义格式数据类型[] 数组名称; (推荐第一种方式)
int[] arr ;
数据类型 数组名称[] ;
int arr[] ;
数组的初始化:
数组的动态初始化和静态初始化的格式
动态初始化:给定数组的长度,元素内容由系统默认分配值
基本数据类型
整数类型:默认int---默认值0
浮点类型:默认double---默认值0.0
字符类型:char----默认值'\u0000'
布尔类型:boolean ---默认值:false
引用类型:数组,类,接口...
默认值:null
int[] arr = {11,22,33,44,55} ;
arr = null ;
数据类型[] 数组名称 = new 数据类型[数组长度] ;
int[] arr = new int[3] ;
静态初始化:给定数组的元素内容,系统默认分配长度
数据类型[] 数组名称 =new 数据类型[] {元素1,元素2,....} ;
简写格式:
数据类型[] 数组名称 = {元素1,元素2,....} ;
int[] arr = {11,22,33} ;
注意事项:
创建数组的时候,不能同时进行动态和静态初始化 (动静结合:不允许的)
int[] arr = new int[3]{1,2,3,4} ; 这种格式错误!
8.形式参数是基本数据类型以及引用类型(数组)作为参数的特点(重点)
基本数据类型作为参数传递,形式参数的改变对象实际参数没有影响
String类(特殊的引用类型,常用类中最重要的一个类)作为形式参数传递,效果和基本数据类型 作为形式参数是一样的
形式参数是引用数据类型的特点:
引用类型(除过String类)作为形式参数传递,形参的改变会直接实际参数
数组,类,接口 都是引用类型
9.面向对象的思想特点
1)更符合生活中的思想行为习惯
2)将复杂的事情简单化
3)角色变化,从执行者变成 指挥者
10.能够使用类来描述现实世界存在的事物
类
创建对象:类名 对象名 = new 类名() ;
对象名.成员变量=赋值
对象名.成员方法名();
11.冒泡排序(重点)!!!:
两比较,将较大的值往后放,第一次比较完毕,最大值出现在最大索引处,
依次这样比较
核心代码
for(int x = 0 ; x < arr.length-1 ; x ++){
for(int y = 0 ; y < arr.length-1-x ; y ++){
//判断:如果前面的元素比后面元素大,将前面的元素放到后面
if(arr[y] > arr[y+1]){
int temp = arr[y] ;
arr[y] = arr[y+1] ;
arr[y+1] = temp ;
}
}
}
12.成员变量和局部变量的区别
1)在类中书写的位置不同的
局部变量:方法定义中或者方法声明上* 成员变量:类中,方法外
2)内存中的位置位置不同的
局部变量:在栈内存中
成员变量:在堆内存中
3)生命周期不同
局部变量: 随着方法调用而存在,随着方法调用完毕而消失
成员变量: 随着对象的创建而存在,随着对象的创建完毕,
等待垃圾回收器回收掉(空闲的时候)之后,消失掉(不会立即消失)
- 初始化不同
局部变量:必须要在使用之前赋值,不赋值,就报错(当前变量可能尚未初始化)
成员变量:系统会 根据当前成员变量的数据类型,系统初始化
-
可以不赋值的!
13.形式参数如果现在是一个类(除了String类),它作为参数传递的特点
形式参数如果是基本数据类型,形参的改变不影响实际参数,引用类型:除过String类,作为形式参数传递.形参的改变直接影响实际参数
结论:
String类作为形参传递,效果和基本数据类型作为形式参数传递是一样的 形参的改变不影响实际参数
14.封装!!!
例如:
在一个学生类中,给学生的年龄属性赋值—赋值为负数—(不合理)----封装
属性私有化—对外不公开的(隐藏,防止外界进行修改)
外界不能直接访问----提供公共的访问方法! setXXX()/getXXX()
15.this 关键字
this关键字的作用: 在类中通过this访问自身的属性和方法