首页 > 其他分享 >第十一谈:内部类

第十一谈:内部类

时间:2024-03-25 19:31:08浏览次数:19  
标签:内部 静态 成员 IdCard 第十一 public 属性

一、成员内部类(非静态)

创建成员内部类对象的语法:

外部类名.内部类名 对象名 = new 外部类名().new 内部类名();
注意:
    1、成员内部类(非静态)既可以访问外部类的中的成员变量,也可以是私有的成员变量
    2、内部类都不会单独编译出一个class文件

 成员内部类的定义:在类的成员位置上定义一个类,相当于类的成员属性。

1)成员内部类中既可以访问外部类中的静态属性,也可以外部类中的非静态属性。

2)类方法(成员方法)要想去调用成员内部类中的属性,要先创建对象,通过对象去调用属性。

 例子:
public class Person{
    static String name="阳哥";  //成员变量1
    int age=24;               //成员变量2
    
    class IdCard{             //成员内部类
        String birthday="9月15日";      //属性
        public void innerFaction(){   //行为
            System.out.println("姓名:"+name);
            System.out.println("年龄"+age)
        }
    }
    
    IdCard id=new IdCard();
    public void say(){    //行为
        System.out.println("好热啊");
        System.out.println("生日"+id.birthday);
    }
    
    public static void main(String[] args){
        //IdCard id=new IdCard();//错误,必须通过Person
        Person person=new Person():
        IdCard idCard=person.new IdCard();
        idcard.innerFaction();
    }  
}

 二、静态内部类

定义:在类中定义一个前面加有static关键字的类。

注意事项:静态类可以直接访问外部的静态属性和方法,不能访问外部的非静态属性和方法。

例子: 

 

public class Child{
    //属性
    static String name="斯巴达";
    int age =24;
    //静态内部类
    static class IdCard{
        //属性
        String birthday;
        public void innerFaction(){
            System.out.println("姓名"+name);
//            System.out.println("年龄"+age); //不能访问外部的非静态属性和方法
        }
    }
    IdCard idCard=new IdCard(); //创建内部类的对象
    //方法
    public void say(){
        idCard.birthday="2023";
        idCard.innerFaction();
    }
    public static void main(String[] args){
    }
}

三、局部内部类

定义:在类的局部(方法里面或者代码块中)定义一个类

局部内部类既可以访问外部类的静态属性和方法,也可以访问外部类的非静态属性和方法

…………………………

………………

…………了解即可

四、匿名内部类

在类中定义一个没有名称,只有类体的类

一般使用于抽象类/实现类--->接口

标签:内部,静态,成员,IdCard,第十一,public,属性
From: https://blog.csdn.net/Szy66677/article/details/137022884

相关文章

  • golang gc的内部优化
    今天讲一个常见的gccompiler(也就是官方版本的go编译器和runtime)在垃圾回收的扫描标记阶段做的优化。我对这个优化的描述印象最深的是在bigcache的注释里,大致内容是如果map的键值都不包含指针,那么gc扫描的时候不管这个map多大都不会深入扫描map内部存储的数据,只检查map本身是否需......
  • JAVA面向对象高级三:内部类概述,成员内部类,静态内部类
            静态内部类:     局部内部类: ......
  • uniapp开发ios,scroll-view横向滚动失效,动态获取scroll-view内部子容器总宽度,然后添加
    这是老bug了,官方一直没有解决掉。已经摸索到完美解决方案,遇到这个问题的可以看下。本文以三级导航页面中的二级横向滚动导航为例,说明如何做到不同宽度子元素的横向滚动。bug定位:本来横向滚动只要子元素宽度大于scroll-view固定宽度就可以滚动的,但是IOSApp开发中子元素高度必须......
  • 企业内部是否有必要采用私有部署的即时通讯软件?
    随着信息技术的飞速发展,即时通讯软件已经成为企业日常沟通不可或缺的工具。面对市面上琳琅满目的即时通讯软件,许多企业都面临着这样一个问题:是否有必要采用私有部署的即时通讯软件?  首先,我们来了解一下私有部署即时通讯软件的基本概念。私有部署即时通讯软件,顾名思义,就是企......
  • 17. STM32内部FLASH
    一、STM32内部FLASH简介  不同型号的STM32F40xx/41xx,其FLASH容量也有所不同,最小的只有128K字节,最大的则达到了1024K字节。STM32F407ZGT6的FLASH容量为1024K字节,STM32F40xx/41xx的闪存模块组织如图所示:  STM32F4的闪存模块由主存储器、系统存储器、OPT区域......
  • 钢材厂探秘:内部可视化模型带你领略工业之美
    在浩瀚的工业海洋中,钢材厂如同一座座巍峨的钢铁城堡,它们不仅见证了国家建设的辉煌历程,更是现代工业文明的生动写照。 可视化的3D模型仿佛将整个钢材厂的生产流程浓缩在了这方寸之间。从原材料的筛选、加工到成品的出厂,每一个环节都清晰可见,让人仿佛置身于繁忙的生产现场。 ......
  • vi 内部快捷键
     打开文件打开文件时,光标在第5行:vim+5/etc/fstab打开文件时,直接进入尾行:vim+/etc/fstab+/PATTERN:打开文件后,直接让光标处于第一个被PATTERN匹配到的行的行首打开文件时,光标在关键词keyword处:vim+keyword/etc/fstab模式转换模式转换编辑模式到输入模式i:ins......
  • 内部类
    内部类内部类就是定义在一个类里面的类 内部类的优缺点1.内部类与外部类可以方便的访问彼此的私有域(包含私有方法、私有属性)2.封装性更好3.匿名内部类可以使代码更加简洁,定义一个类的同时对其进行实例化内部类的分类成员内部类 静态内部类有static修饰的成员......
  • 华企盾DSC企业内部信息安全的一站式解决方案
    随着计算机和网络技术的迅速发展,越来越多的信息以电子形式存储在了个人和商用电脑中,并通过网络进行了广泛的传播。然而,在这个大数据时代中,信息安全问题突显出来,并逐渐引起了人们的高度重视。众所周知,数据的存储和交换中,信息的安全问题尤为重要。据调查显示,有90%的企事业单位文件是......
  • Java 面向对象编程进阶六(内部类 )
    目录内部类内部类的概念内部类的分类1、非静态内部类(外部类里使用非静态内部类和平时使用其他类没什么不同)2、静态内部类3、匿名内部类4、局部内部类内部类        内部类是一类特殊的类,指的是定义在一个类的内部的类。实际开发中,为了方便的使用外部类的相......