形参和返回值
抽象类名作为形参和返回值
1.方法的形参是抽象类名,但我们需要的是该抽象类的子类对象
2.方法的返回值是抽象类名,其实返回的是该抽象类的子类对象。
接口名作为形参和返回值
1.方法形参是接口名,其实需要的是该接口的实现类对象。
2.方法的返回值是接口名,其实返回的是该接口的实现类对象。
内部类
定义
在类中定义一个类。
例:
public class 类名{
修饰符 class 类名{
}
}
范例:
public class Outer{
public class Inner{
}
}
内部类的特点
1.内部类可以直接访问外部类的成员,包括私有。
2.外部类要访问内部类的成员,必须创建对象。
成员内部类
在类的成员位置称之为成员内部类,在类的局部位置(类的方法中)称之为局部内部类。
只限于内部类修饰符为public的时候的调用格式
格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
例:Outer.Inner oi = new Outer() .new Inner();
常用格式是在外部类中创建一个方法,在方法里面创建一个内部类的对象类调用内部类的方法,在外部只需要创建外部类对象来访问该方法即可。
局部内部类
局部内部类是定义在方法中的类,所以外界不能直接使用。需要在该方法内部创建内部类对象并使用该类可以直接访问外部类成员,也可访问方法内的局部变量。
匿名内部类
前提:存在一个类或者接口,这里的类可以是具体类也可以是抽象类。
本质是一个集成了该类或者实现了该接口的子类匿名对象。
格式:
new 类名或接口名(){
重写方法;
};
范例:
new Inter(){
public void show(){}
};
Math
方法名 | 说明 |
---|---|
public static int abs(int a) | 返回参数的绝对值 |
public static double ceil(double a) | 返回大于或等于参数的最小double值,等于一个整数 |
public static double floor(double a) | 返回小于或等于参数的最大double值,等于一个整数 |
public static int round(float a) | 按照四舍五入返回最接近参数的Int |
public static int max(int a, int b) | 返回两个Int值的较大值 |
public static int min(int a,int b) | 返回两个int值的较小值 |
public static double pow(double a,double b) | 返回a的b次幂的值 |
public static double random() | 返回值为double的正值,[0.0,1.0] |
*System.out.println((int)(Math.random()100)+1);
取1-100的随机整数
System
常用方法
1.public static void exit(int status) 终止当前正在运行的Java虚拟机,非零表示异常终止。
2.public static long currentTimeMills() 返回当前时间(毫秒为单位,基于1970年1月1日)
Object
建议在类中都重写toString方法,在测试类中直接输出对象。
equals()方法比较对象的地址值,重写后比较对象的内容。
Arrays
冒泡排序
1.如果有n个数据进行排序,总共需要比较N-1次
2.每一次比较完,下一次比较就会少一个数据参与。
Demo:
package Day15_Array;
/*
冒泡排序:有几个元素就拍元素量减一次。
*/
public class ArrayDemo {
public static void main(String[] args) {
int[] arr = {70, 1, 18, 8, 25, 63};
System.out.println("排序前:" + arrayToString(arr));
for (int x = 0; x < arr.length - 1; x++) {
for (int i = 0; i < arr.length - 1 - x; i++) {
if (arr[i] > arr[i + 1]) {
int temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
}
System.out.println("冒泡排序后的值为:" + arrayToString(arr));
}
//创建方法使数组有规则排列
public static String arrayToString(int[] arr) {
StringBuilder sb = new StringBuilder();
sb.append("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
sb.append(arr[i]);
} else {
sb.append(arr[i] + ",");
}
}
sb.append("]");
String s = sb.toString();
return s;
}
}
Arrays类的常用方法
方法名 | 说明 |
---|---|
public static String toString(int[] a) | 返回指定数组的字符串形式 |
public static void sort(int[] a) | 按照数字顺序排列指定的数组 |