阿里云服务器发布网站,门户网站开发方案文档,桂林同城网站,搜索网站怎么做的文章目录 1. 内部类2. 枚举3. 泛型 1. 内部类
成员内部类 就是类中的一个普通成员#xff0c;类似普通的成员方法、成员变量。#xff08;套娃#xff09;
public class Outer {public class Inner {private String name;public static String school;public String getNa… 文章目录 1. 内部类2. 枚举3. 泛型 1. 内部类
成员内部类 就是类中的一个普通成员类似普通的成员方法、成员变量。套娃
public class Outer {public class Inner {private String name;public static String school;public String getName() {return name;}public void setName(String name) {this.name name;}}
}public class Main {public static void main(String[] args) {Outer.Inner in new Outer().new Inner();in.setName(jehan);Outer.Inner.school CQUPT;System.out.println(Outer.Inner.school in.getName());}
}
静态内部类 有static修饰的内部类属于外部类自己持有。使用它时就像使用静态方法一样就行只能访问外部类的静态成员不能访问外部类的非静态成员。
匿名内部类重点 一种特殊的局部内部类不需要为这个类声明名字。
特点匿名内部类本质就是一个子类并会立即创建出一个子类对象作用用于更方便的创建一个子类对象通常作为一个参数传递给函数
2. 枚举
枚举是一种特殊类。
枚举类的第一行只能写一些合法的标识符多个名称用逗号隔开。这些名称本质是常量每个常量都会记住枚举类的一个对象。枚举类的构造器都是私有的因此枚举类对外不能创建对象。枚举类都是最终类不可以被继承。
public enum A {// 注意枚举类的第一行必须罗列的是枚举对象的名称X, Y, Z;private String name;// 构造器都是私有的public String getName() {return name;}public void setName(String name) {this.name name;}
}public class Main {public static void main(String[] args) {A a1 A.X;System.out.println(a1);}
}3. 泛型
这一块和C差不多都是尖括号里面声明变量类型。
不过定义的时候比C简单只需要在类名后面加尖括号就行了。
需要注意的是泛型不支持基本数据类型只支持对象类型引用数据类型。我们知道java的引用数据类型是在堆中创建的对象引用数据类型的变量实际上是一个指向对象的指针通过这个指针可以访问对象的属性和方法具体的有4大类类、接口、数组、字符串
所以int这些基本数据类型就不行但java提供了Integer这样的引用数据类型
public class MyArrayList类型变量E, 类型变量T {public boolean add(E e) {return true;}
}泛型接口
修饰符 interface 接口名类型变量, 类型变量, ... {}修饰符 class 类名 implements 接口名类型变量 {Override...
}泛型方法 泛型方法放泛型的位置有点不一样是放到返回值前面。
修饰符 类型变量 返回值类型 方法名(形参) {
}?在泛型中作为通配符在使用时表示一切类型来使用 public static go(ArrayList? extends Car cars) {}