当前位置: 首页 > news >正文

常州钟楼区邹区建设局网站知名做网站公司

常州钟楼区邹区建设局网站,知名做网站公司,郑州做网站找维诺,天河建设网站平台1.内部类 定义:Java中的内部类(Inner Class)是指在一个类的内部定义的类。 使用场景:当一个类的内部,存在一个部分需要完成的结构进行描述,而该内部结构只为外部类提供服务,那么这个内部结构就可以使用内部类&#xff…

1.内部类

定义:Java中的内部类(Inner Class)是指在一个类的内部定义的类。

使用场景:当一个类的内部,存在一个部分需要完成的结构进行描述,而该内部结构只为外部类提供服务,那么这个内部结构就可以使用内部类(如Map中的entry内部类)

在Java中,内部类一共有以下几个分类:

1.1 实例内部类

定义在类内部方法外部且未使用static修饰的内部类

//外部类
public class SampleOuterClass {//实例内部类public class SampleInnerClass {}
}
  • 1.实例内部类所处的位置和外部类中的其他成员一样,同样可以使用访问限定修饰符。且外部类的访问限定修饰符和实例内部类的访问限定修饰符相互独立
  • 2.外部类的任意成员(构造方法除外)都可以在实例内部类中直接访问在这里插入图片描述
  • 3.当外部类和内部类中存在同名成员时,优先访问内部类中的成员。如果要访问外部类中的成员需要使用外部类类名.this.同名成员来访问在这里插入图片描述
  • 4.必须先创建外部类对象,再通过外部类对象的引用来创建实例内部类对象 在这里插入图片描述
    未创建外部类对象而直接创建内部类对象会抛出NullPointerException异常
    在这里插入图片描述
  • 5.在外部类中访问实例内部类的成员必须先创建实例内部类对象 在这里插入图片描述

1.2 静态内部类

定义在类内部方法外部且使用static修饰的内部类

public class OuterClass {public static class StaticInnerClass {}
}
  • 1.静态内部类中只能访问外部类的静态成员 在这里插入图片描述
  • 2.创建静态内部类对象前不需要先创建外部类对象 在这里插入图片描述

3.在静态内部类中访问外部类的静态成员时,需要通过外部类的类名来访问。即使在静态内部类中存在同名的静态成员也不会冲突在这里插入图片描述

  • 4.在外部类中访问静态内部类成员的方式与访问实例内部类成员一样

1.3 局部内部类(不常用)

定义在方法内部

public class OuterClass {public String publicNumber = "outer";public void method(){//局部内部类class LocalInnerClass {public final String publicNumber = "inner";public void method(){System.out.println(this.publicNumber);System.out.println(OuterClass.this.publicNumber);}}//只能在本方法内部实例化LocalInnerClassLocalInnerClass localInnerClass = new LocalInnerClass();localInnerClass.method();}
}
public class Test {public static void main(String[] args) {OuterClass outerClass = new OuterClass();outerClass.method();}
}
  • 1.局部内部类访问外部类成员的方式与实例内部类一样
  • 2.外部类无法访问局部内部类的任何成员
  • 3.局部北部类只能在本方法内部实例化
  • 4.局部内部类只能使用和局部变量一样的修饰符(局部变量能使用哪些修饰符,局部内部类就只能使用这些)

1.4 匿名内部类

  • 没有类名,直接实现接口或者继承类
interface IUsb{void method();
}public class OuterClass {public static void main(String[] args) {//匿名内部类new IUsb(){@Overridepublic void method() {System.out.println("匿名内部类");}};}
}

在这里插入图片描述
调用重写方法的方式有两种:

  • 1.直接在匿名内部类后面调用方法
interface IUsb{void method();
}public class OuterClass {public static void main(String[] args) {//匿名内部类new IUsb(){@Overridepublic void method() {System.out.println("匿名内部类");}}.method();}
}
  • 2.创建一个引用指向该匿名内部类,使用该引用调用方法
interface IUsb{void method();
}public class OuterClass {public static void main(String[] args) {//匿名内部类IUsb iUsb = new IUsb(){@Overridepublic void method() {System.out.println("匿名内部类");}};iUsb.method();}
}

1.5 内部类的源文件&字节码文件

所有内部类和外部类公用同一份java文件,但是在编译后内部类也会生成单独的字节码(class)文件
在这里插入图片描述

http://www.dtcms.com/a/417259.html

相关文章:

  • 网页制作哪家服务好宁波网站关键词优化排名
  • 各地城乡建设网站更新wordpress移动端代码
  • 网站的构建一般要多久政务网站建设经验交流发言
  • 哈尔滨精致网站建设湖南网站建设网
  • 如何上传程序到网站空间长沙建设银行招聘网站
  • .net商城网站模板下载景区网站建设的意义
  • 广州网站设计易企建站网站建设需要摊销几年
  • php学校网站系统成都顶呱呱网站建设
  • 站长之家商城太原建设网站制作
  • 自己的网站怎么开微站是什么东西
  • 网上书城网站建设目的自己服务器做网站如何备案
  • 北京建设教育协会的网站wordpress修改插件路径
  • 网站做后台产品内页设计
  • 广州市建设工程造价站网站小浣熊做单网站
  • 网站建设选择题题库制作一个网站的基本步骤
  • 网站建设最难的部分电影vip网站建设步骤
  • 宁波网络建站海拉尔建网站
  • 复兴网站制作文章页模板wordpress
  • 怎么通过做网站来赚钱设计网站教程
  • 学校网站建设运行简介手机网站源码 html5
  • 南京建行网站专业的网站开发公司电话
  • 杭州设计 公司 网站建设报名系统
  • php网站开发开题报告如果做二手车网站
  • 深圳网站建设的客户在哪里上海网站群建设
  • 广州协会网站建设网页游戏排行榜逃
  • 公共资源交易中心网站建设汇报做网站维护的人叫啥
  • 数码电子产品网站建设策划书怎样做电商卖货
  • html企业网站系统建设网站经验
  • 牛股大转盘网站建设珠海做快照网站电话
  • 引导企业做网站鹿泉微信网站建设