内部类

  • 内部类就是在一个内的内部再定义一个内
  • 内部类的分类:成员内部类,静态内部类,局部内部类,匿名内部类

(1)成员内部类

  • 指类中的一个普通成员,可以定义成员属性,成员方法
  • 内部类是可以访问外部类的成员和实例的

成员内部类的定义

//外部类
public class Outer{
//定义成员内部类
public class Inner{
private String name; //内部类的成员属性
public static String schoolName; //静态成员变量
public void test(){ //定义方法 }
}
}

成员内部类的使用

注意:必须要先创建外部类的对象,内部类的对象才能够被创建

Outer.Inner in = new Outer().new Inner();
in.test(); //之后跟其他类的使用没什么区别
  • 如果外部类和成员内部类有相同的属性,访问内部类属性使用this;访问外部类属性使用外部类名称+this
this.age;     //内部类的属性
Outer.this.age; //外部类的属性

(2)静态内部类

  • 有static修饰的内部类,属于外部类自己持有。
  • 静态内部类与成员内部类的使用基本一致,但静态内部类只能访问外部类的静态成员变量。

(3)局部内部类

  • 局部内部类就是定义在方法,代码块,构造器等执行体中。

(4)匿名内部类

  • 匿名内部类是特殊的局部内部类,匿名指的是不需要声明名字
  • 如果匿名内部类为空,则编译器会报错
  • 匿名内部类本质就是一个子类,并且会创建出一个子类对象
  • 匿名内部类可以更方便的创建出一个子类对象,通常作为一个参数传递给方法。
//内部类声明
new 类或接口(参数){ }

使用示例

public calss Test{
new Animal(){ //匿名内部类
public void cry(){ }
}
} abstract class Animal{
public abstract void cry();
}

Java的四种内部类(成员内部变量,静态内部变量,局部内部类,匿名内部类)的更多相关文章

  1. Java的四种内部类

    Java的四种内部类包括如下: 成员内部类 静态内部类 局部内部类 匿名内部类 成员内部类: 定义在另一个类(外部类)的内部,而且与成员方法和属性平级叫成员内部类,......相当于外部类的非静态方法 ...

  2. java的四种内部类详解

    引言 内部类,嵌套在另一个类的里面,所以也称为:嵌套类; 内部类分为以下四种: 静态内部类 成员内部类 局部内部类 匿名内部类 一.静态内部类 静态内部类: 一般也称"静态嵌套类" ...

  3. Java的四种内部类(含代码实例)

    写在前面:本博客为本人原创,严禁任何形式的转载!本博客只允许放在博客园(.cnblogs.com),如果您在其他网站看到这篇博文,请通过下面这个唯一的合法链接转到原文! 本博客全网唯一合法URL:ht ...

  4. 类与接口(二)java的四种内部类详解

    引言 内部类,嵌套在另一个类的里面,所以也称为 嵌套类; 内部类分为以下四种: 静态内部类 成员内部类 局部内部类 匿名内部类 一.静态内部类 静态内部类: 一般也称"静态嵌套类" ...

  5. java的四种内部类(转)

    一般来说,有4中内部类:常规内部类.静态内部类.局部内部类.匿名内部类. 一.常规内部类:常规内部类没有用static修饰且定义在在外部类类体中.  1.常规内部类中的方法可以直接使用外部类的实例变量 ...

  6. java中四种引用类型

    java中四种引用类型  今天看代码,里面有一个类java.lang.ref.SoftReference把小弟弄神了,试想一下,接触java已经有3年了哇,连lang包下面的类都不了解,怎么混.后来在 ...

  7. java中四种引用类型(对象的强、软、弱和虚引用)

    对象的强.软.弱和虚引用在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK 1.2 ...

  8. Java中四种访问权限总结

    一.Java中有四种访问权限, 其中三种有访问权限修饰符,分别为private.public.protected,还有一种不带任何修饰符(default). 1. private: Java语言中对访 ...

  9. Java中四种引用:强、软、弱、虚引用

    这篇文章非常棒:http://alinazh.blog.51cto.com/5459270/1276173 Java中四种引用:强.软.弱.虚引用 1.1.强引用当我们使用new 这个关键字创建对象时 ...

  10. Java基础:Java的四种引用

    在Java基础:java虚拟机(JVM)中,我们提到了Java的四种引用.包括:强引用,软引用,弱引用,虚引用.这篇博客将详细的讲解一下这四种引用. 1. 强引用 2. 软引用 3. 弱引用 4. 虚 ...

随机推荐

  1. auto-GPT部署

    Auto-GPT 是一个实验性开源应用程序,其作者在3月31日将其发布在Github上.它以GPT-4 作为驱动,可以自主做出决定以实现目标,无需用户干预.AutoGPT的地址:https://git ...

  2. servlet系列:简介和基本使用以及工作流程

    目录 一.简介 二.Servlet实现 三.基本使用 1.引入pom依赖 2.实现Servlet规范,重写service方法 3.配置web.xml 4.配置Tomcat 6.运行 四.Servlet ...

  3. 质量管理 | QC、QA、QM,去QA化与降本增效

    现在国内职业的质量管理都是从 CMMI 和 ISO 质量体系演化过来的,但是能做真正的质量管理的公司很少.质量管理的 QC 偏测试,对最终的产品负责:QA 偏过程,从过程把控质量:QM 偏体系,类似于 ...

  4. 以程序员为视角,关于商品详情API接口的说明

    ​ 商品详情API接口是现代电商平台中非常重要的一部分,它提供了获取淘宝商品详细信息的能力.作为一个程序员,了解如何调用这个API接口是非常关键的. 首先,我们需要明确的是,API接口是应用程序与服务 ...

  5. Jenkins持续集成入门到精通(入门篇)

    1. 什么是持续集成 持续集成(Continuous integration,简称CI)指的是频繁将代码集成到主干.它的目的,就是让产品可以快速迭代,同时保持高质量.核心措施,代码集成到主干之前,必须 ...

  6. Visual Studio必备插件

    1.Rainbow Braces 2.Codist 3.ResXManager 4.XAML Styler for Visual Studio 2022 5.Viasfora 6.ZenCoding ...

  7. Linux Ubuntu 安装Qt【安装完可以直接运行】

    1.安装 Qt: 第一步:到官网http://download.qt.io/archive/qt/下载 Qt 安装包,此处本人安装的是 qt-opensource-linux-x64-5.7.0.ru ...

  8. Solution -「CCPC Winter Camp Day 6 A」Convolution

    Description Link. 给定一个数列 \(\sf a_1,a_2,....a_n\),请求出下面这个结果在模 \(\sf 998244353\) 下的答案. \[\sum_{i=1}^{n ...

  9. Teamcenter RAC 开发之《新建Item》

    private TCComponentItem createOperation(String itemName,String itemType) { //obejct_name itemType tr ...

  10. 流水线中便捷迭代,鲲鹏DevKit 23.0新能力抢先看

    本文分享自华为云社区<鲲鹏DevKit 23.0:流水线中便捷迭代鲲鹏版本,迁移.开发.调优无缝衔接>,作者:华为云社区精选 . 数字时代,海量的行业应用驱动着多样性算力的飞速发展,以鲲鹏 ...