Java内部类和泛型

来源:互联网 发布:96台海战争知乎 编辑:程序博客网 时间:2024/06/02 07:27

一、内部类

内部类可以是静态(static)的,可以使用 public、protected 和 private 访问控制符,而外部类只能使用 public,或者默认。

1、成员内部类

(1)内部类可以直接访问外部类成员,包括私有成员(private);外部类调用内部类成员,需要实例化内部类对象再调用;

public class Outerclass {int x;private int y;public void addOuter() {Inner inner = new Inner();inner.m++;}public class Inner {int m;public void addInner() {x++;y++;}}}


(2)内部类可以对同一包其他类隐藏;

(3)静态内部类只能访问外部类静态数据(方法和变量);

二、匿名内部类

语句:new 接口名或者抽象类名

(1)定义位置-方法体内或者语句块内;

(2)必须继承一个抽象类或者实现一个接口;

abstract class Person{           public void eat(); }class Cat extends Person{            public void eatSth(){            Person p=new Person(){                         public void eat(){}                         }             }             p.eat();
}
<pre name="code" class="html">             new Person{
                 public void eat(){}                         }             }.eat();
}

二、泛型

1、泛型类-可以接受所有类型的数据

定义 class Point<T1 T2>{                    T1 x;                    T2 y;}
实例化 Point<Integer,Integer> p=new <span style="font-family: Arial, Helvetica, sans-serif;">Point<Integer,Integer>;</span>


2、泛型方法

定义 public <T1,T2>  void Name(T1 x,T2 y){} //<>内为泛型参数 ()为传值参数

修饰符与返回值类型直接定义在泛型中使用的泛型参数列表

0 0