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

苏州网站建设品牌12333上海公共招聘网

苏州网站建设品牌,12333上海公共招聘网,宁波建设银行网站分部,规划设计公司资质要求目录 1. 什么是内部类#xff1f; 2. 内部类的分类 3. 内部类 3.1 实例内部类 3.2 静态内部类 4. 局部内部类 5. 匿名内部类 6.对象的打印 “不积跬步无以至千里#xff0c;不积小流无以成江海。”每天坚持学习#xff0c;哪怕是一点点#xff01;#xff01; 2. 内部类的分类  3. 内部类 3.1 实例内部类 3.2 静态内部类  4. 局部内部类  5. 匿名内部类 6.对象的打印 “不积跬步无以至千里不积小流无以成江海。”每天坚持学习哪怕是一点点 1. 什么是内部类 在Java中内部类是定义在其他类内部的类。它们的存在是为了提供更加灵活和功能强大的方式来组织和管理代码从而使代码更加清晰和易于维护。当一个事物的内部还有一个部分需要一个完整的结构进行描述而这个内部的完整的结构又只为外部事物提供服务那么这个内部的完整结构最好使用内部类。在 Java 中可以将一个类定义在另一个类或者一个方法的内部前者称为内部类后者称为外部类。内部类也是封装的一种体现。 public class OutClass {class InClass{} } // OutClass是外部类 // InClass是内部类 【注意事项】 1. 定义在class 类名{}花括号外部的即使是在一个文件里都不能称为内部类 public class A{}class B{}// A 和 B是两个独立的类彼此之前没有关系 2. 内部类和外部类共用同一个java源文件但是经过编译之后内部类会形成单独的字节码文件 2. 内部类的分类  先来看下内部类都可以在一个类的哪些位置进行定义 public class OutClass {// 成员位置定义未被static修饰 ---实例内部类public class InnerClass1{}// 成员位置定义被static修饰 --- 静态内部类static class InnerClass2{}public void method(){// 方法中也可以定义内部类 --- 局部内部类几乎不用class InnerClass5{}} } 根据内部类定义的位置不同一般可以分为以下几种形式      1. 成员内部类(普通内部类未被static修饰的成员内部类 和 静态内部类被static修饰的成员内部类)      2. 局部内部类(不谈修饰符)、匿名内部类 注意内部类其实日常开发中使用并不是非常多大家在看一些库中的代码时候可能会遇到的比较多日常开始中使用最多的是匿名内部类 3. 内部类 在外部类中内部类定义位置与外部类成员所处的位置相同因此称为成员内部类。 3.1 实例内部类 即未被static修饰的成员内部类。 public class OutClass {private int a;static int b;int c;public void methodA(){a 10;System.out.println(a);}public static void methodB(){System.out.println(b);}// 实例内部类未被static修饰class InnerClass{int c;public void methodInner(){// 在实例内部类中可以直接访问外部类中任意访问限定符修饰的成员a 100;b 200;methodA();methodB();// 如果外部类和实例内部类中具有相同名称成员时优先访问的是内部类自己的c 300;System.out.println(c);// 如果要访问外部类同名成员时候必须外部类名称.this.同名成员名字OutClass.this.c 400;System.out.println(OutClass.this.c);}}public static void main(String[] args) {// 外部类对象创建 以及 成员访问OutClass outClass new OutClass();System.out.println(outClass.a);System.out.println(OutClass.b);System.out.println(outClass.c);outClass.methodA();outClass.methodB();System.out.println(实例内部类的访问);// 要访问实例内部类中成员必须要创建实例内部类的对象// 而普通内部类定义与外部类成员定义位置相同因此创建实例内部类对象时必须借助外部类// 创建实例内部类对象OutClass.InnerClass innerClass1 new OutClass().new InnerClass();// 上述语法比较怪异也可以先将外部类对象先创建出来然后再创建实例内部类对象OutClass.InnerClass innerClass2 outClass.new InnerClass();innerClass2.methodInner();} } 【注意事项】1. 外部类中的任何成员都可以在实例内部类方法中直接访问2. 实例内部类所处的位置与外部类成员位置相同因此也受public、private等访问限定符的约束3. 在实例内部类方法中访问同名的成员时优先访问自己的如果要访问外部类同名的成员必须外部类名称.this.同名成员 来访问4. 实例内部类对象必须在先有外部类对象前提下才能创建5. 实例内部类的非静态方法中包含了一个指向外部类对象的引用6. 外部类中不能直接访问实例内部类中的成员如果要访问必须先要创建内部类的对象。   3.2 静态内部类  被static修饰的内部成员类称为静态内部类。  public class OutClass {private int a;static int b;public void methodA(){a 10;System.out.println(a); }public static void methodB(){System.out.println(b); } // 静态内部类被static修饰的成员内部类 static class InnerClass{public void methodInner(){// 在内部类中只能访问外部类的静态成员// a 100; // 编译失败因为a不是类成员变量b 200;// methodA(); // 编译失败因为methodB()不是类成员方法methodB();} }public static void main(String[] args) {// 静态内部类对象创建 成员访问OutClass.InnerClass innerClass new OutClass.InnerClass();innerClass.methodInner();} } 【注意事项】1. 在静态内部类中只能访问外部类中的静态成员2. 创建静态内部类对象时不需要先创建外部类对象 4. 局部内部类  定义在外部类的方法体或者{}中该种内部类只能在其定义的位置使用一般使用的非常少此处简单了解下语法格式。   public class OutClass {int a 10;public void method(){int b 10;// 局部内部类定义在方法体内部// 不能被public、static等访问限定符修饰class InnerClass{public void methodInnerClass(){System.out.println(a);System.out.println(b);}} // 只能在该方法体内部使用其他位置都不能用InnerClass innerClass new InnerClass();innerClass.methodInnerClass();}public static void main(String[] args) {// OutClass.InnerClass innerClass null; 编译失败} } 【注意事项】 1. 局部内部类只能在所定义的方法体内部使用 2. 不能被public、static等修饰符修饰 3. 编译器也有自己独立的字节码文件命名格式外部类名字$数字内部类名字.class 4. 几乎不会使用   5. 匿名内部类 匿名内部类是指没有类名的内部类通常在创建接口实例或继承抽象类时使用。它的语法结构如下 new 父类构造器/接口() { // 匿名内部类的类体可以是成员变量、方法等 };其中父类构造器是指要继承的父类的构造方法接口是指要实现的接口。在匿名内部类的类体中可以定义成员变量、方法等但不能有构造方法。 以下是一个示例创建了一个实现了Runnable接口的匿名内部类 Thread t new Thread(new Runnable() {public void run() {System.out.println(Hello, World!);} }); t.start();在这个示例中我们创建了一个Thread对象并向它的构造方法中传入了一个实现了Runnable接口的匿名内部类。该匿名内部类实现了run方法当线程启动后就会执行该方法输出“Hello, World!”的信息。 6.对象的打印 public class Person {String name;String gender;int age;public Person(String name, String gender, int age) {this.name name;this.gender gender;this.age age;}public static void main(String[] args) {Person person new Person(Jim,男, 18);System.out.println(person);}} // 打印结果day20210829.Person1b6d3586 如果想要默认打印对象中的属性该如何处理呢答案重写toString方法即可。 public class Person {String name;String gender;int age;public Person(String name, String gender, int age) {this.name name;this.gender gender;this.age age;}Overridepublic String toString() {return [ name , gender , age ];}public static void main(String[] args) {Person person new Person(A小码,男, 18);System.out.println(person);} }//输出结果[A小码,男,18] 注图片来自网络如有侵权请联系删除    希望对大家有所帮助感谢观看
http://www.dnsts.com.cn/news/196828.html

相关文章:

  • 专业移动网站建设商投资公司logo
  • sns网站设计一直能打开的网站突然打不开
  • php网站建设入门教程一般网站做哪些端口映射
  • 手机网站开发 图库类wordpress 文章格式
  • 网站建设柒首先金手指1手机版网站开发html5
  • 公司网站制作投标互联网投诉服务平台
  • 云空间的网站如何做制作手机网页教程
  • 做的最好的网站公司建站系统软件有哪些
  • dw课设做网站html基本知识
  • 无锡网络公司无锡网站推广网站建设周末培训
  • 网站开发亿玛酷技术网站建设规划设计任务书
  • 淘宝客网站怎么做推广策点市场调研公司
  • 三合一网站建设是指深圳建站公司模板
  • 陕西建设厅网站外贸公司网站开发步骤
  • 如何在百度推广网站seo 页面链接优化
  • 做网站前端难吗如何找外包网站来做
  • 国企网站建设合同网页浏览器没有声音
  • 建设工程专注在哪个网站烟台城乡建设局官方信息网站
  • 网站建设价格评审资料清单铜川做网站的公司
  • 揭阳网站建设托管江阴网站开发公司
  • 路桥网站建设网站服务器如何选择
  • 网站建设好了怎么做推广电子商务网站建设规划实践成果
  • 河南做网站送记账设计师网络用语
  • 设计一个企业网站多少钱高德地图无目的地导航
  • 即墨专业医院网站制作公司手机网站建设进度
  • 学校局域网站建设阿里云主机价格表
  • 网站建设的一些销售技巧dw个人网页设计
  • t恤定制网站网站内链检查
  • 网站视频播放代码wordpress5 源码
  • 自响应式网站建设清单上海网站建设排行