数组反转(简单)
数组扩容:定义新数组,元素大小加1(简单)
冒泡排序思路:从后向前一次比较相邻元素的值,若发现逆序即交换,使值较大的元素从前移向后
二维数组
静态初始化:int[][] arr = { {0, 0, 0}, {1, 1, 1}, {2, 2, 2} };
原来一维数组的每个元素是一维数组,构成了二维数组
①二维数组的元素个数arr.length
②得到其中一维数组的长度arr[i].length
例:第3个一维数组的第4个值:arr[2][3]
动态初始化:
int[][] arr = new int[3][4];
int[][] arr = new int[3][]; //每个一维数组元素为空
arr[i] = new int[i];
总结:
一维数组声明:int[] x; int x[];
二维数组声明:int[][] y; int y[][]; int[] y[];
最基础的终于看完了!!!
=============================================================
类与对象
引入类与对象(OOP),根本原因就是现有技术不能满足新的需求
属性一般是基本数据类型,也可以是引用类型
Class Cat {
//属性/成员变量/field(字段)
String name;
int age;
String color;
}
//1. 创建一只猫
//2. 把创建的猫赋给cat1
Cat cat1 = new Cat();
cat1.name = "小白";
cat1.age = 3;
cat1.color = "白色";
访问修饰符(后面讲)
控制属性的访问范围
访问修饰符 属性类型 属性名;
public protected 默认 private
对象属性的默认值,遵守数组规则
栈:一般存放基本数据类型
堆:存放对象
方法区:常量池,类加载信息
成员方法
public class Input{
public static void main(String args[]){
Person p1 = new Person();
p1.speak();//调用方法
}
}
class Person {
String name;
int age;
//方法/成员方法
//1. public:表示方法是公开的
//2. void:表示方法没有返回值
//3. speak:方法名 ():形参列表
//4. {}:可以写执行的代码
public void speak() {
System.out.println("我是一个好人");
}
}
可以向方法中传入形参
方法调用机制
1. 当程序调用方法时,会开辟一个新的独立空间(栈)
2. 当方法执行完毕,或者执行完return语句时,就会返回
3. 返回调用方法第地方
4. 返回后,继续执行方法后面的代码
5. 当main方法(栈)执行完毕,整个程序退出
方法的好处:
提高代码的复用性
可以将实现的细节封装起来,然后其他用户调用即可
使用细节
1. 一个方法最多有一个返回值,多个返回值用数组
2. 返回类型可以是任意类型,包涵基本类型和引用类型
3. 如果方法要求有返回数据类型,则方法体最后执行的语句必须是return
返回值类型必须与return值类型一致或兼容
4. 方法是void,则方法体中可以没有return语句,或只写return
命名要有一定含义