内部类共分为:
一,成员内部类
public class Nibulei {
public void outprint() {
Nibulei.Chin chin = new Chin();
chin.showi();
}
public static void main(String[] args) {
Nibulei nibulei = new Nibulei();
// nibulei.outprint();
Nibulei.Chin chin = nibulei.new Chin();
chin.showi();
}
class Chin{
int y=0;
Chin(){
System.out.println("我是内部类");
}
public void showi() {
System.out.println(y);
}
}
}
二,局部内部类
在方法中定义类
其中注意参数,如果传入参数则hi会被替换为xx,如果不传入则显示hi
import java.awt.Container;
public class Jubu {
public outinnerClass action(String x) {
class innerClass implements outinnerClass{//局部内部类
public innerClass(String s) {
s=x;
System.out.println(s);
}
}
return new innerClass("hi");
}
public static void main(String[] args) {
Jubu jubu = new Jubu();
outinnerClass action = jubu.action("xx");
}
}
interface outinnerClass{
}
三,匿名内部类
public class nimingneibulei {
public outInterface action() {
outInterface outInterface = new outInterface() {//第一种写法
private int i=0;
private int getag() {
return i;
}
};
return outInterface;
}
public static void main(String[] args) {
new outInterface() {//第二种写法
};//在new的时候就创建这个类,每次new都会创建
}
}
interface outInterface {
}
四,静态内部类
静态内部类可以调用main方法,一般用于调试等操作;
public class jingtaineiblei {
static int x=100;
static class inner4{//静态内部类
void getx() {
x=1;
}
public static void main(String[] args) {//在外面会生成一个static
System.out.println("我是静态类");
}
}
}
五,内部类继承
固定写法
public class Jichengneibullei {
class innerClass{
}
public static void main(String[] args) {
}
}
class newClass extends Jichengneibullei.innerClass{
public newClass(Jichengneibullei s) {
s.super();
}
}
网友评论