java入门-成员内部类和静态内部类的访问

news2024/9/21 20:25:38

(一)成员内部类

package InnerClass;

import javax.print.attribute.standard.MediaSize;

public class Outer {
    //2外部类中的成员
    private int age=99;
    public static String a;
    public class Inner{//普通的成员内部类
        //1.1成员变量
        public String name;
        private int age=88;
        public static  String Schoolname;//JDK16开始才支持定义静态成员
        //1.2成员方法
        public String getName(){
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public void test(){
            //2.1内部类 可以像普通方法一样访问外部类的成员

            a="njax";
            System.out.println(age);
            System.out.println(a);

        }
        public void printage(){
            int age=66;
            //就近原则,当直接打印时选择最近值:66
            System.out.println(age);//66
            //this 代表的是当前内部类的对象
            System.out.println(this.age);//88
            //要访问外部类对象,加上一个外部类
            System.out.println(Outer.this.age);//99

        }


    }
    public void tset2(){
       /* 3外部类中的方法不可以访问内部类中的成员
       name="adhaj";
        System.out.println(name);*/
    }
}

Test方法创建对象及其访问

package InnerClass;

public class Test
{
    public static void main(String[] args) {
       //目标:了解 成员内部类 及其特点
//访问成员内部类,要先创建外部类的对象才能创建内部类的对象

        Outer.Inner in=new Outer().new Inner();
        in.test();
        in.printage();

    }
}

(二)静态内部类

package InnerClass.staticInner;

public class Outer {
    //
    private int age;
    public static  String schoolName;
    public static class Inner{//静态内部类,与普通类所包含的东西没有区别,
        private String name;
        public static int a;
        public void test(){
            //2.静态类中可以直接访问外部类的static变量,
            // 但是不可以直接访问外部类的实例成员变量age
            //因为age是对象的成员变量,而静态类和静态成员变量一样属于类,不用创建对象
            System.out.println(schoolName);

        }

        public void setName(String name) {
            this.name = name;
        }

        public String getName() {
            return name;
        }
    }
}

test:

package InnerClass.staticInner;

public class Test {
    public static void main(String[] args) {
        //目标:了解静态内部类
        //1.静态内部类与静态成员变量类似,可以直接使用外部类访问,不用创建外部类对象
        Outer.Inner in=new Outer.Inner();
        in.setName("anjxb");
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2047468.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

删除镜像报子镜像依赖错误

1、删除镜像报子镜像依赖错误 出现这个错误的原因是因为有其他镜像依赖需要删除的镜像。 2解决方法 2.1首先查看无法删除的镜像被哪些镜像所依赖 docker image inspect --format{{.RepoTags}} {{.Id}} {{.Parent}} $(docker image ls -q --filter since${image_id}) # ${ima…

数据结构:线性结构之顺序表、链表篇

数据结构:顺序表、链表篇 线性表一、顺序表(一)顺序表的结构定义(二)顺序表的功能实现1、初始化2、销毁3、扩容4、插入5、删除 (三)顺序表例题分析1、删除有序数组中的重复项2、合并两个有序数组…

【Hot100】LeetCode—73. 矩阵置零

目录 1- 思路开辟额外两个一维数组 2- 实现⭐53. 最大子数组和——题解思路 3- ACM 实现 原题连接:73. 矩阵置零 1- 思路 开辟额外两个一维数组 1- 利用额外的两个一维数组 boolean 数组空间,遇到 0 则将当前位置的元素设置为 true 一维 row 数组&…

如何判断一个dll/exe是32位还是64位

通过记事本判断(可判断C或者C#) 64位、将dll用记事本打开,可以看到一堆乱码,但是找到乱码行的第一个PE,如果后面是d?则为64位 32位、将dll用记事本打开,可以看到一堆乱码,但是找到乱码行的第…

最好用的Linux发行版---WSL

使用debian开发半年,那个号称稳定的操作系统,ubuntu也是基于它的testing版本开发的,在一次设置testing更新后英伟达驱动掉了、引导区无法启动、bios损坏,现在老实了,换回了Window,并且激进的选择了win11&am…

c语言中的宏函数及c++的内联函数及auto及NULL

c的内联函数 使用内联函数可以减少函数栈帧的开销。 Swap(a, b); 00A516C8 mov eax,dword ptr [a] 00A516CB mov dword ptr [ebp-20h],eax 00A516CE mov ecx,dword ptr [b] 00A516D1 mov dword ptr [a],ecx 00A516D4 mov …

Linux登录后自动健康检查:一键掌握系统状态

Linux登录后自动健康检查:一键掌握系统状态 最近开始公众号文章也开始同步更新了,对Java、大数据、人工智能、开发运维相关技术分享,文章对您有用的话,辛苦您也关注下公众号,感谢! 引言 当我们登录到某些服…

rt-thread 打开flashdb若干问题

1、打开FAL和SFUD功能 2、打开FLASHDB时,想用utest测试工程,结果报错,缺少mkdir函数: 解决办法:打开DFS RT-Thread Components → DFS: device virtual file system 重新编译

大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

windows重装系统后无法安装软件,Windows软件无法打开,缺少dll,缺少c++运行库

如果你使用Directx&#xff0c;要么识别不出来&#xff0c;要么装上之后更新会发现重复安装了很多运行库 装一个visual stiudio&#xff1a;<Visual Studio 2022 IDE - 适用于软件开发人员的编程工具> 选择使用C游戏开发、.Net桌面开发 然后安装即可

学习Java的日子 Day71 手写一个SpringMVC的框架(一)

手写一个SpringMVC的框架 1.理解为什么要写这样一个框架 SpringMVC 实际上跟Servlet是一样&#xff0c;都是 Controller的一个解决方案&#xff0c;也就是说我们手写这个框架的目的就是为了替换原来的 Servlet 注意&#xff1a; spring不是框架&#xff0c;springMVC才是框架&…

一文入门mysql 数据库

一、数据库概述 什么是数据库 数据库是一个用于存储和管理数据的仓库。数据按照特定的格式存储&#xff0c;可以对数据库中的数据进行增加、修改、删除和查询操作。数据库的本质是一个文件系统&#xff0c;按照一定的逻辑结构组织数据&#xff0c;以方便高效地访问和维护。 什…

使用Python创建LNK文件选择器并导出配置文件

在这篇博客中&#xff0c;我将介绍如何使用Python的wxPython库开发一个GUI应用程序&#xff0c;该应用程序可以选择文件夹中的.lnk&#xff08;快捷方式&#xff09;文件&#xff0c;并将选中的文件导出为特定格式的buttons.ini配置文件。这个工具非常适合用来快速生成配置文件…

使用Java调用Apache commons-text求解字符串相似性实战

目录 前言 一、字符串距离的几种计算方法 1、Levenshtein 距离 2、Overlap Coefficient计算 3、Q-gram Matching 4、余弦相似性计算 二、基于余弦相似性的基地名称对比 1、加载百科中的基地信息列表 2、设置忽略词列表 3、将数据库地名和Excel进行对比 三、总结 前言…

c语言音频.wav读写示例

1 .wav格式说明 一. RIFF 概念 在 Windows 环境下&#xff0c;大部分的多媒体文件都依循着一种结构来存放信息&#xff0c;这种结构称为"资源互换文件格式"(Resources lnterchange File Format)&#xff0c;简称 RIFF。例如声音的 WAV 文件、视频的 AV1 文件等等均…

EmguCV学习笔记 VB.Net 2.4 Image类

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV学习笔记目录 Vb.net EmguCV学习笔记目录 C# 笔者的博客网址&#xff1a;VB.Net-CSDN博客 教程相关说明以及如何获得pdf教…

【图解秒杀系列】秒杀技术点——秒杀按钮点亮、削峰

【图解秒杀系列】秒杀技术点——秒杀按钮点亮、削峰 秒杀按钮点亮涉及的问题以及解决办法处理流程 削峰答题 & 验证码具体流程 排队 秒杀按钮点亮 在秒杀场景中&#xff0c;秒杀商品页面是需要处理按钮点亮的逻辑的。在秒杀未开始前&#xff0c;按钮置灰&#xff0c;不可点…

POSIX信号量semaphore实现线程同步

POSIX标准定义了信号量接口如下&#xff0c;常常用于线程间同步。 #include <semaphore.h>int sem_init(sem_t *sem, int pshared, unsigned int value); int sem_destroy(sem_t *sem); int sem_post(sem_t *sem); int sem_wait(sem_t *sem); sem_init()在sem指向的地址…

微信小程序反编译工具

目录 介绍 工程结构还原 微信开发者工具运行 如何查看当前运行版本? 开启小程序F12 重新打包运行 效果示例 安装 用法 参数说明 获取微信小程序AppID 文件夹名即为AppID 下载地址 介绍 纯Golang实现,一个用于自动化反编译微信小程序的工具,小程序安全利器, 自…

【杂谈】-8个常用的Python图像操作库

8个常用的Python图像操作库 文章目录 8个常用的Python图像操作库1、OpenCV2、Pillow&#xff08;PIL&#xff09;3、Scikit Image4、Numpy5、SciPy6、Mahotas7、SimpleITK8、Matplotlib 在当今世界&#xff0c;数据在每个行业垂直领域中都发挥着至关重要的作用。图像可以是提取…