首页 > 其他分享 >N种内部类

N种内部类

时间:2024-01-13 22:44:22浏览次数:24  
标签:Outer 内部 void public demo10 oop class

概念

内部类就是在一个类的内部再定义一个类。比如,A类中定义一个B类,那么B类相对A类来说就称为内部类,而A类相对B类来说就是外部类了。

  1. 成员内部类

  2. 静态内部类

  3. 局部内部类

  4. 匿名内部类

  5. lambda

注意

一个java类中可以有多个class类,但是只能有一个public class

 

快捷键

输入outer.new Inner(),加alt+enter

 

可实例化成员内部类

 

代码

成员内部类

//Java-零基础学习/src/oop/demo10/Outer
package oop.demo10;

public class Outer {

   private int id = 10;

   public void out() {
       System.out.println("这是外部类的方法");
  }

   public class Inner {
       public void in() {
           System.out.println("这是内部类的方法");
      }

       //获得外部类的私有属性
       public void getID() {
           System.out.println(id);
      }
  }
}
//Java-零基础学习/src/oop/Application
package oop;

import oop.demo10.Outer;

//一个项目应该只存在一个main方法
public class Application {

   public static void main(String[] args) {
       Outer outer = new Outer();
       //通过这个外部类来实例化内部类
       Outer.Inner inner = outer.new Inner();
       inner.in();
       inner.getID();
  }
}

静态内部类

//Java-零基础学习/src/oop/demo10/Outer
package oop.demo10;

public class Outer {

   private int id = 10;

   public void out() {
       System.out.println("这是外部类的方法");
  }

   public static class Inner {
       public void in() {
           System.out.println("这是内部类的方法");
      }
  }
}
//Java-零基础学习/src/oop/Application
package oop;

import oop.demo10.Outer;

//一个项目应该只存在一个main方法
public class Application {

   public static void main(String[] args) {
       Outer outer = new Outer();
  }
}

局部内部类

//Java-零基础学习/src/oop/demo10/Outer
package oop.demo10;

public class Outer {

   //局部内部类
   public void method() {

       class Inner {
           public void in() {
               
          }
      }
  }
}

匿名内部类

//Java-零基础学习/src/oop/demo10/Test
package oop.demo10;

public class Test {
   public static void main(String[] args) {
       //没有名字初始化类,不用将实例保存在变量中
       new Apple().eat();

       //省略 UserService userService = new UserService()
       new UserService() {

           @Override
           public void hello() {

          }
      };
  }
}

class Apple {
   public void eat() {
       System.out.println("1");
  }
}

interface UserService {
   void hello();
}
 

 

标签:Outer,内部,void,public,demo10,oop,class
From: https://www.cnblogs.com/poiuyjoey/p/17963144

相关文章

  • 内部的,内在的   inner, inside, interior, internal, inward
    inside  a.里面的,内部的;internal  a.内部的,体内的;国内的,内政的;inner  a.内部的,靠近中心的;内心的,内在的;interior  a.内部的;内陆的;国内的,内政的。 内部的,内在的inner,inside,interior,internal,inward这些形容词均含“内部的,内在的”之意。inner:......
  • 分析和修复服务器内部错误:HTTP状态码500
    Laravel是一个流行的PHP框架,它具有出色的可测试性,可以帮助开发人员在更短的时间内编写可靠的代码。但是,即使使用了这个框架,也可能会出现测试覆盖率较低的情况。测试覆盖率是指代码中已由测试案例覆盖的部分比例。测试覆盖率越高,代码质量越高。在本文中,我们将分享几种技巧,帮助您提......
  • 【设计模式】单例模式——利用ThreadLocal或CAS实现单线程内部的单例模式
    很多时候我们并不需要一个类创建的对象是全局唯一的,只需要保证在单个线程内是唯一的、线程安全的就可以。为了实现单线程内部的单例,我们可以用ThreadLocal或CAS实现。利用ThreadLocal实现先看代码:publicclassThreadLocalSingleton{privatestaticfinalThreadLocal<Thread......
  • 获取 app 内部的资源图片文件
    一、获取Assets.car:https://www.jianshu.com/p/7710c68f38cf首先去Mac上的AppStore下载AppleConfigurator2。然后把iphone连接上Mac,点击AppleConfigurator2菜单中->账户->登陆(用连接设备的AppleID)  打开登录.png  登录AppleID.png备份iPhone的内......
  • 痞子衡嵌入式:原来i.MXRT1170内部RAM的ECC初始化工作可全部由ROM完成
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家分享的是i.MXRT1170内部RAM的ECC初始化工作可全部由ROM完成。痞子衡之前写了三篇文章《M7FlexRAMECC》、《M4L-MEMECC》、《MECC64》分别介绍了i.MXRT1170片上2MBRAM的不同ECC控制器用法,尤其是第三篇文......
  • lightdb/postgresql中plpgsql、函数与操作符、表达式及其内部实现
    PG_PROCPG_OPERATORpg_opclass用于定义索引上的相关操作符,一般来说是同一类数据类型。pg_opfamiliy定义了相互兼容的数据类型的操作符,关系见https://www.postgresql.org/docs/9.1/catalog-pg-opclass.html。pg8.3引入pg_opfamilies,原因:Create "operatorfamilies" toimprove......
  • 死锁、内部碎片、外部碎片、多进程/多线程、服务器高并发、集群
    死锁:两个(多个)线程互相等待对方数据的过程1.死锁产生条件(解决办法):......
  • 企业内部加密哪个软件好?
    企业内部加密是一种保护企业数据安全的重要手段,它可以防止数据被未经授权的人员访问、拷贝、传播、删除或篡改。市面上有很多企业内部加密软件,它们各有优缺点,具体要根据您的需求和预算来选择。以下是一些常见的企业内部加密软件的介绍和比较,供您参考:......
  • jenkins报"node"不是内部或外部命令,也不是可运行的程序或批处理文件。
    解决方法:1、配置node的环境变量2、配置系统环境变量:3、配置Jenkins环境变量path值:win+R,cmd,输入path获得......
  • Java外部类和内部类
    一:外部类:平时定义的类二:内部类:一般情况下,类和类之间是相互独立的,内部类可以理解为打破了这种独立,让一个类成为了一个类的内部信息,和成员变量成员方法同级。所以创建内部类的时候要在外部类里面创建,不可以跳出外部类的大括号。同样内部类作为一个类也可以定义变量和方法  ......