首页 > 编程语言 >Java内部类

Java内部类

时间:2023-02-14 20:11:35浏览次数:40  
标签:Java 内部 成员 public static 修饰 class

Java内部类

内部类介绍

在java中,可以将一个类定义到另一个类的内部或者方法内部,这样的类叫做内部类,内部类可以分为:成员内部类、局部内部类、匿名内部类、静态内部类。

1. 成员内部类

成员内部类是在一个类里面直接定义一个类,例如:

class Demo1{
    int num;
    class Demo2{
        
    }
}

内部类可以访问外部类成员,但是外部类不可以直接访问内部类成员,需要创建一个内部类对象才可以访问内部类成员。

2. 局部内部类

局部内部类指的是在一个类的方法成员里面定义一个类,例如:

public class Demo1{
    int num;
    public void demo11{
        class Demo2{
            ...
        }
    }
}

局部内部类就像一个局部变量一样,不能被访问修饰符例如public、protected、private、static修饰,否则会报错。

3. 匿名内部类

匿名内部类就像一个方法的参数一样,用完就没有了,它的名字也是系统自动为它命名,例如:

public class Demo{
     public static void main(String[] args){
         Thread t=new Thread(new Runnable(){
             @Override
             public void run(){
                 ...
             }
         })
     };
    t.start();
}

4. 静态内部类

静态内部类和成员内部类相似,只不过是被static修饰符修饰,例如:

public class Demo1{
    int num;
    static class Demo2{
        ...
    }
}

由于static关键词修饰,内部类是不允许访问外部类非static关键词修饰的成员。

标签:Java,内部,成员,public,static,修饰,class
From: https://www.cnblogs.com/xiaomitu/p/17120755.html

相关文章

  • Java抽象类与接口
    Java中抽象类与接口Java抽象类在java中定义抽象类使用abstract关键字,具体用法如下:abstractclassAbstractClassName{}需要注意的是,定义一个抽象类的类名应该......
  • Java开学测试
    2021级《软件工程》课前测试试卷(180分钟) 河北省环保监测中心网络新闻发布系统(卷面成绩40分,占课程过程考核20分) 1、项目需求:河北省环保监测中心网络新闻为搭建公众......
  • JavaWeb
    JavaWebJavaWeb1、基本概念1.1、前言web开发:web,网页的意思,例如:www.baidu.com静态webHTML,css提供给所有人看到的数据始终不会发生变化动态web淘宝,几乎是所......
  • Java方法
    何为方法:1.方法是语句的集合,它们在一起执行某个功能。2.方法是解决一类问题的有序步骤组合。3.方法包含于类或对象中。4.方法在程序中被创建,在其他地方被引用。方法......
  • java面试总结
    java基础为什么java中只有值传递?java中基本类型是通过copy传递值的,引用类型是通过copy引用传递的,所以java中只有值传递。java序列化java不建议使用自带序列化Serializ......
  • java面试题(七)
    1.21说一说hashCode()和equals()的关系参考答案hashCode()用于获取哈希码(散列码),eauqls()用于比较两个对象是否相等,它们应遵守如下规定:如果两个对象相等,则它们必须有相同的......
  • javascript 高级编程系列 - Web Workers
    Webworkders的规范让javascript在后台运行脱离了UI线程,从而解决了大量计算阻塞UI线程导致卡死的问题。在Webworkers没有出现之前,我们可以使用window.setTimeout异步方......
  • Java 查找Panel 里的某个组件 比如 按钮
    遇到到一个需求,需要获取界面里的一个按钮,但是这个按钮是封装的父类嵌入的,知道label的值。 写了一个递归获取它1privateJButtonLookupTheButton(Componentcontai......
  • Java入门
    Java特性与优势简单性面向对象可移植性(跨屏台)高性能分布式动态性(反射)多线程安全性健壮性Java的三大版本JavaSE:标准版(桌面程序、控制台......
  • 【开发宝典】Java并发系列教程(四)
    作者:京东零售刘跃明Monitor概念Java对象的内存布局对象除了我们自定义的一些属性外,还有其它数据,在内存中可以分为三个区域:对象头、实例数据、对齐填充,这三个区域组成起来才......