1、为什么要内部类?
最主要的原因就是这个类使用范围比较局限,没必要在外部新创一个类,只在本类中使用
2、普通内部类和静态内部类有什么区别?
普通方法没有影响,可以生成二者的对象
静态方法的时候,只能生成静态内部类,最常见的静态方法main方法
3、个人参考程序
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class Main {
//声明一个静态内部类
public static class Employees {
private Student student;
//String类型的类变量name
private String name;
//int类型的类变量age
private int age;
//double类型的类变量salary
private double salary;
//无参数的构造方法
public Employees() {}
//带所有类变量的构造方法
public Employees(String name, int age, double salary) {
//初始化类变量
this.name = name;
//初始化类变量
this.age = age;
//初始化类变量
this.salary = salary;
}
//get()/set()方法
public String getName() {
return name;
}
//get()/set()方法
public void setName(String name) {
this.name = name;
}
//get()/set()方法
public int getAge() {
return age;
}
//get()/set()方法
public void setAge(int age) {
this.age = age;
}
//get()/set()方法
public double getSalary() {
return salary;
}
//get()/set()方法
public void setSalary(double salary) {
this.salary = salary;
}
//toString()方法
public String toString() {
//返回所有的类变量的值。
return "Employees [name=" + name + ", age=" + age + ",salary=" + salary + "]";
}
}
//声明一个普通方法
public void print(){
//目标list:
//利用Employees对象创建一个List类型的集合(这里还使用了类
//Arrays的方法asList(T...a)进行了转换)。
//注意使用泛型
List<Employees> list = Arrays.asList(
new Employees("张三",18,9999.99),
new Employees("李四",38,5555.55),
new Employees("王五",50,6666.66),
new Employees("赵六",16,3333.33),
new Employees("田七",8,8888.88)
);
list.stream().filter((e)->e.getAge()>18).forEach(System.out::println); //打印出年龄大于18的Employees
List<Employees> list2=list.stream().filter(e->e.getAge()>18).collect(Collectors.toList());
System.out.println(list2);
}
public static void main(String[] args) {
//目标list:
//利用Employees对象创建一个List类型的集合(这里还使用了类
//Arrays的方法asList(T...a)进行了转换)。
//注意使用泛型
List<Employees> list = Arrays.asList(
new Employees("张三",18,9999.99),
new Employees("李四",38,5555.55),
new Employees("王五",50,6666.66),
new Employees("赵六",16,3333.33),
new Employees("田七",8,8888.88)
);
list.stream().filter((e)->e.getAge()>18).forEach(System.out::println); //打印出年龄大于18的Employees
}
}