复习Day06
二维数组
声明创建
静态创建
创建并初始化
int[x][y] nums = {{},{},{}...};
x:二维数组中一位数组的个数
y:二维数组中一位数组中的元素个数
动态创建
注意:
创建和初始化可以同时进行,也可以先创建,后赋值
int[][] nums;
nums = new int[x][y]{{},{},{},...};
int[][] nums= new int[x][y]{{},{},{},...};
x:二维数组中一位数组的个数
可以有也可以没有;
可以先设定,也可以后设定
y:二维数组中一位数组中的元素个数
必须有;
使用
查
查询指定位置的一维数组
数组名[下标]
查询指定位置的元素
数组名[下标1][下标2];
下标1:一维数组在二维数组中的位置
下标2:元素在一维数组中的位置
查询二维数组的长度
数组名.length
注意:长度为二维数组中一维数组的个数,不是所有元素的个数
for
语法:
for(int i = 0;i < nums.length;i++){
sout(nums[i]+",")
}
foreach
语法:
for(int i : nums){
sout(i)
}
改
修改指定位置的一维数组
数组名[下标] = 新的一维数组;
修改指定位置的元素
数组名[下标1][下标2] = 值;
下标1:一维数组在二维数组中的位置
下标2:元素在一维数组中的位置
修改整个二维数组
数组名 = 新的二维数组
算法
杨辉三角
思想:
i
0 1 0 0 0 0 0
1 1 1 0 0 0 0
2 1 2 1 0 0 0
3 1 3 3 1 0 0
4 1 4 6 4 1 0
5 1 5 10 10 5 1
...
0 1 2 3 4 5 j
当j==0或j==i时值为1
j<i时:当前位置[i][j] = 上一行[i-1][j]+上一行[i-1][j-1]
j>i时:值为0
冒泡排序
冒泡
思想:相邻比较,交换位置
选择排序
选择
思想:找到最大或最小的,然后放到开头的位置,或结尾的位置
Day07
编程思想
面向过程
只考虑事物发展顺序,不考虑参与事物中的对象。
面向对象
先考虑事物中存在哪些对象,然后再考虑事物发展对象顺序。
可以考虑生活中的事。
对象
什么是对象:
Java:万事万物皆对象
所有客观存在的事物都是对象。
代码中的对象:
在代码中真实存在的事物
类
概念:
多个对象抽取其共同点形成的概念,称为类。
类与对象的关系
生活中:先有对象,后有类;
代码中:先有类,后有对象;
一个类可以创建多个对象,多个对象可以属于同一个类。
创建类
public class 类名{
}
类中有什么
静态特征:
属性(成员变量):描述对象静态特征
语法:
访问权限修饰符 数据类型 变量名;
属性声明的位置:
类中,方法外
注意:属性:可有可无,可以多个;
别名:成员变量
动态特征(行为):
方法:描述对象行为
语法:
访问权限修饰 返回值类型 方法名(形参列表){
}
修饰符:暂时不写;
方法声明的位置:
类中,方法外
注意:方法:可有可无,可以多个;
别名:函数,成员方法,成员函数;
构造方法:
作用 :创建对象
语法 :
访问权限修饰符 构造函数名(形参列表){
}
注意:
1.构造函数名和类名完全一致;(大小写都一样);
2.使用new关键字调用;
3.一个类中可以含有多个构造函数
4.多个构造函数一定构成重载
成员变量与局部变量的区别
成员变量:属性
定义位置:类中,方法外
有默认值:基本数据类型默认为0,引用数据类型默认为null
生命周期:随着对象创建而生成,随着对象的销毁而销毁
可以使用访问权限修饰符
局部变量:
定义位置:类中,方法中,或形参中
没有默认值
生命周期:随着方法的调用而生成,随着方法的执行完毕而销毁
使用范围:声明的代码块中
不能使用访问权限修饰符
局部变量和成员变量可以同名:
当局部变量与成员变量名字相同时,默认使用局部变量。
this关键字
this含义:
谁调用this所在的方法,this就代表谁
调用本类的属性和方法,这个时候this可以忽略不写。
作用:
1,当局部变量与成员变量(属性)重名时,用于区分成员变量还是局部变量
变量名:局部变量
this.变量名:成员变量
2,在方法中调用本类的属性或方法,此时可以忽略this不写
this.属性名\方法名(实参列表)
3,调用本类其他构造函数
要求:
1,必须在构造函数的第一行
2,不能形成递归
this(实参列表);
如何创建对象:(类的实例化)
通过new,构造函数,
语法:
好记:
类名 对象名 = new 类名(实参列表);
专业:
数据类型 对象名 = new 构造函数名(实参列表);
注意:
如果一个类中没有构造函数,系统默认生成无参构造函数。
如果一个类中有构造函数,系统不会生成构造函数。
如何使用对象的属性或方法:
获取
对象名.属性
者对象.方法;
语法:
对象名.方法;
对象名.属性;
对象的创建过程(了解)
数据类型 对象名 = new 构造函数名(实参列表);
步骤:
1,使用new关键字在堆内存开辟一片空间,用于存储该对象的属性与方法
2,给对象属性赋初始值,基本数据类型赋值为0,引用数据类型赋值为null
3,执行构造函数中的代码
4,将堆内存中的地址(步骤1中开辟的内存地址)赋值给栈的引用(对象名)