Java方法
-
return 有终止方法的作用,方法中执行到return语句时会终止。
-
Java是值传递
方法的重载
-
方法的名字必须一样,但参数列表必须不一样。仅仅返回类型不同不足以构成重载。
-
重载方法返回值类型可以相同也可以不相同。
命令行传参
-
运行一个class文件,需要找到包的路径开始执行文件。
可变参数(不定项参数)
-
在参数类型后面加(...).
-
int ... num;
-
一个方法中只能定义一个可变参数,且只能是最后一个参数,其它普通的参数都必须在它之前定义。
递归
-
递归头:什么时候不调用自己,如果没有递归头,将进入死循环。
-
递归体:什么时候需要调用自身方法。
-
有边界,前阶段,返回阶段。
-
能不用递归就不用递归。
数组
-
数组的长度是不可以改变的,一旦创建了就固定了。
-
数组中的元素可以是任意数据类型,包括基本类型和引用类型。
-
数组本身就是对象(数组元素相当于对象的成员变量),Java中对象是保存在堆中的,无论数组中存放的是基本类型还是引用类型,数组本身是保存在堆中的。
数组的声明和创建
-
声明
int[] nums;
-
创建,分配内存空间
nums=new int[10];
或者 int[] nums2=new int [10];
获取数组长度
arrays.length
内存分析
-
静态初始化
int[] a={1,2,3,4,5,6,7};
-
动态初始化:包含默认初始化
int[] b=new int[10];
b[0]=10;
数组使用
数组可以作为方法的参数或返回值。
for each循环
-
一般用来打印结果。
int[]a={1,2,3,4,5};
for(int array:a)
{
System.out.println(array);
}
反转数组
//反转数组
public static int[] reverse(int[] arrays){
int[] result=new int[arrays.length];
for (int i = 0,j= arrays.length-1; i <arrays.length ; i++,j--) {
result[i]=arrays[j];
}
return result;
二维数组
int a[][]=new int [2][5];
Arrays类
打印数组元素
int[] a={1,2,3,786,55,456,99999,65};
sSystem.out.println(Arrays.toString(a));
数组排序(升序)
Arrays.sort(a);
数组填充
Arrays.fill(a,1); //此时数组a内元素都为1
Arrays.fill(a,2,4,1); //此时数组a内下标为【2,4)的元素都为1
冒泡排序
-
外层循环判断要做几次排序。
-
内层循环来实现相邻数字比大小排序。
-
时间复杂度O(n2)。
int[] a={2,1,3,786,55,456,99999,65,100};
public static void sort(int[] array)
{
for(int i=0;i< array.length-1;i++)
{
boolean flag=false;// 通过标识减少无意义的循环
for(int j=0;j< array.length-1-i;j++)
{
if (array[j]>array[j+1])
{
int temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=true;
}
}
if(flag==false)// 说明顺序已经正确了,不用再循环了
{
break;
}
}
}
稀疏数组
-
当一个数组中大部分数据为0或者为同一值时,使用稀疏数组来保存数据。
-
稀疏数组的处理方式:
-
记录数组一共有几行几列,有多少个不同值。
-
把具有不同值的元素的行列及值记录在一个小规模数组中,从而缩小程序的规模。
面向对象
-
属性+方法=类
-
以类的方式组织代码,以对象的组织(封装)数据。
-
三大特性
-
封装
-
继承
-
多态
回顾方法及加深
修饰符 返回值类型 方法名(...){
//方法体
return 返回值;
}
-
break:跳出switch,结束循环。 return:结束方法,返回一个值。可以返回空。
return;
-
方法名:驼峰命名法(首字母小写,后续单词首字母大写),见名知义。
-
参数列表:(参数类型,参数名)...可变长参数
-
异常抛出
方法的调用
-
不同类中的静态方法可以调用。如在Demo1类中调用Student类中的方法say
Student.say();
-
如果是非静态方法,需要实例化这个类,new
//对象类型 对象名 = 对象值
Student student =new Student();
student.say();
//用上面的语句或
new Student().say();
-
一个static方法不能调用一个非静态方法。
值传递和引用传递
晕
类与对象的关系
-
类是一种抽象的数据类型,它是对某一类事物的整体描述,但是不能代表某一个具体的事物。
-
对象是抽象概念的具体实例
一个项目应该只存在一个main方法。
-
类实例化后会返回一个自己的对象,这个对象就是这个类的一个具体实例。
创建与初始化对象
-
使用new关键字时会给创建好的对象进行默认的初始化。
public class Student
{
String name;
int age;
public void study(){
System.out.println(this.name+"在学习");
}
}
public class Application
{
public static void main(String[] args) {
Student xiaoming=new Student();
Student xh=new Student();
xiaoming.name="小明";
xiaoming.age=3;
System.out.println(xiaoming.name);
xiaoming.study();
}
}