1.内部类的概述
把类定义在其他类的内部,这个类就被称为内部类。 举例:在类A中定义了一个类B,类B就是内部类。 内部类的访问特点:
内部类可以直接访问外部类的成员,包括私有。 外部类要访问内部类的成员,必须创建对象。
内部类位置
按照内部类在类中定义的位置不同,可以分为如下两种格式: 成员位置(成员内部类) 局部位置(局部内部类) 成员内部类
外界如何创建对象 外部类名.内部类名 对象名 = 外部类对象.内部类对象;
成员内部类
1:非静态的成员内部类,成员只能是非静态的。 2:内部类被静态修饰后的方法有静态和非静态之分。他们的访问和不用静态是不一样的。
访问非静态方法:外部类名.内部类名 对象名 = new 外部类名.内部类名();
访问静态方法:上面创建的对象访问,或者外部类名.内部类名.方法名();
局部内部类
可以直接访问外部类的成员 可以创建内部类对象,通过对象调用内部类方法,来使用局部内部类功能
匿名内部类
就是内部类的简化写法。 前提:存在一个类或者接口 这里的类可以是具体类也可以是抽象类。 格式: new 类名或者接口名() {重写方法;}
本质: 是一个继承了类或者实现了接口的子类匿名对象
2.选择排序案例
键盘录入5个数据(不同的数据),将该数据存储到数组中,然后使用选择排序对该数组排序,获取该数组中的最大值以及最小值!
import java.util.Scanner;
class SelectSortPrintIndex{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("键盘录入5个数据(不同的数据)");
int a=sc.nextInt();
int b=sc.nextInt();
int c=sc.nextInt();
int d=sc.nextInt();
int e=sc.nextInt();
int[] arr={a,b,c,d,e};
selectSort(arr);
}
public static void selectSort(int[] arr){
int max=0;
int min=0;
for(int x=0;x<arr.length-1;x++){
for(int y=x+1;y<arr.length;y++){
if(arr[y]<arr[x]){
int a=arr[x];
arr[x]=arr[y];
arr[y]=a;
}
}
}
min=arr[0];
max=arr[arr.length-1];
System.out.println("数组中的最大值为:"+max+",最小值为:"+min);
}
}