电子商务网站设计的原则,中国广告商务网,做网站和维护要多少钱,WordPress文章入库规则文章目录 1. 内部类的基本使用2. 成员内部类3. 局部内部类4. 匿名内部类5. 匿名内部类在开发中的使用#xff08;应用#xff09; 1. 内部类的基本使用 内部类概念 在一个类中定义一个类。举例#xff1a;在一个类A的内部定义一个类B#xff0c;类B就被称为内部类 内部类定… 文章目录 1. 内部类的基本使用2. 成员内部类3. 局部内部类4. 匿名内部类5. 匿名内部类在开发中的使用应用 1. 内部类的基本使用 内部类概念 在一个类中定义一个类。举例在一个类A的内部定义一个类B类B就被称为内部类 内部类定义格式 格式举例
/*格式class 外部类名{修饰符 class 内部类名{}}
*/class Outer {public class Inner {}
}内部类的访问特点 内部类可以直接访问外部类的成员包括私有外部类要访问内部类的成员必须创建对象 示例代码
/*内部类访问特点内部类可以直接访问外部类的成员包括私有外部类要访问内部类的成员必须创建对象
*/
public class Outer {private int num 10;public class Inner {public void show() {System.out.println(num);}}public void method() {Inner i new Inner();i.show();}
}2. 成员内部类
成员内部类的定义位置 在类中方法跟成员变量是一个位置 外界创建成员内部类格式 格式外部类名.内部类名 对象名 外部类对象.内部类对象;举例Outer.Inner oi new Outer().new Inner(); 私有成员内部类 将一个类设计为内部类的目的大多数都是不想让外界去访问所以内部类的定义应该私有化私有化之后再提供一个可以让外界调用的方法方法内部创建内部类对象并调用。示例代码
class Outer {private int num 10;private class Inner {public void show() {System.out.println(num);}}public void method() {Inner i new Inner();i.show();}
}public class InnerDemo {public static void main(String[] args) {//Outer.Inner oi new Outer().new Inner();//oi.show();Outer o new Outer();o.method();}
}静态成员内部类 静态成员内部类访问格式外部类名.内部类名 对象名 new 外部类名.内部类名();静态成员内部类中的静态方法外部类名.内部类名.方法名();示例代码
class Outer {static class Inner {public void show(){System.out.println(inner..show);}public static void method(){System.out.println(inner..method);}}
}public class Test3Innerclass {/*静态成员内部类演示*/public static void main(String[] args) {// 外部类名.内部类名 对象名 new 外部类名.内部类名();Outer.Inner oi new Outer.Inner();oi.show();Outer.Inner.method();}
}3. 局部内部类
局部内部类定义位置 局部内部类是在方法中定义的类 局部内部类方式方式 局部内部类外界是无法直接使用需要在方法内部创建对象并使用该类可以直接访问外部类的成员也可以访问方法内的局部变量 示例代码
class Outer {private int num 10;public void method() {int num2 20;class Inner {public void show() {System.out.println(num);System.out.println(num2);}}Inner i new Inner();i.show();}
}public class OuterDemo {public static void main(String[] args) {Outer o new Outer();o.method();}
}4. 匿名内部类
匿名内部类的前提 存在一个类或者接口这里的类可以是具体类也可以是抽象类 匿名内部类的格式 格式new 类名 ( ) { 重写方法 } new 接口名 ( ) { 重写方法 }举例
new Inter(){Overridepublic void method(){}
}匿名内部类的本质 本质是一个继承了该类或者实现了该接口的子类匿名对象 匿名内部类的细节 匿名内部类可以通过多态的形式接受 Inter i new Inter(){Overridepublic void method(){}
}匿名内部类直接调用方法
interface Inter{void method();
}class Test{public static void main(String[] args){new Inter(){Overridepublic void method(){System.out.println(我是匿名内部类);}}.method(); // 直接调用方法}
}5. 匿名内部类在开发中的使用应用
匿名内部类在开发中的使用 当发现某个方法需要接口或抽象类的子类对象我们就可以传递一个匿名内部类过去来简化传统的代码 示例代码
/*
游泳接口
*/
interface Swimming {
void swim();
}public class TestSwimming {public static void main(String[] args) {goSwimming(new Swimming() {Overridepublic void swim() {System.out.println(铁汁, 我们去游泳吧);}});}/*** 使用接口的方法*/public static void goSwimming(Swimming swimming){/*Swimming swim new Swimming() {Overridepublic void swim() {System.out.println(铁汁, 我们去游泳吧);}}*/swimming.swim();}
}