当前位置: 首页 > news >正文

JavaSE:11、内部类

学习 资源1

学习资源 2

1、成员内部类

import com.test.*;public class Main {public static  void main(String [] argv){Person person=new Person();//Person构造函数Person.Woman woman=person.new Woman();//woman构造函数}
}
package com.test;public class Person {public Person(){System.out.println("Person构造函数");}public class Woman{public  Woman(){System.out.println("woman构造函数");}}
}
内部类能访问外部成员,外部类不能访问内部类成员
package com.test;public class Person {public int age;public Person(){System.out.println("Person构造函数");//name="aaa";ERROR   不能使用内部类的成员}public class Woman{public  String name;public  Woman(){System.out.println("woman构造函数");age=18;  //true  内部类能访问外部成员}}
}
同名的3种访问方式
import com.test.*;public class Main {public static  void main(String [] argv){Person person=new Person();//Person构造函数Person.Woman woman=person.new Woman();//woman构造函数woman.test(20);//    方法参数age : 20//    内部类的age : 19//    外部类的age : 18}
}
package com.test;public class Person {public int age=18;public class Woman{public  int age=19;public void test(int age){System.out.println("方法参数age : "+age);     //参数System.out.println("内部类的age : "+this.age);   //内部类成员System.out.println("外部类的age : "+Person.this.age); //外部成员}}
}

2、静态内部类

内部类为static,注意外部类不能为static 
import com.test.*;public class Main {public static  void main(String [] argv){Person.Woman.p();//我是静态内部类的静态方法Person.Woman woman=new Person.Woman();woman.test(20);//    方法参数age : 20//    内部类的age : 19//    外部类的age : 18}
}
package com.test;public class Person {public static int age=18;//静态内部类只能访问到外部静态内容public static class Woman{public  int age=19;public void test(int age){System.out.println("方法参数age : "+age);     //参数System.out.println("内部类的age : "+this.age);   //内部类成员System.out.println("外部类的age : "+Person.age); //外部成员}public static  void p(){System.out.println("我是静态内部类的静态方法");}}
}

3、局部内部类

在方法中定义一个类
package com.test;public class Person {public int age;public void test(){class T{public void p(){System.out.println("我是局部内部类");}}T t=new T();t.p();}//T t=new T();t.p();   只能在方法里面用,外部用不了
}
import com.test.*;public class Main {public static  void main(String [] argv){Person person=new Person();person.test();//我是局部内部类}
}

4、匿名内部类

匿名内部类是唯一一种没有构造方法的类,它就像是直接通过 new 关键字创建出来的一个对象
一般我们可以在抽象类的对象实现中使用匿名内部类
package com.test;public abstract class Person {public int age;public void say(){}}
import com.test.*;public class Main {public static  void main(String [] argv){Person person=new Person(){@Overridepublic void say() {System.out.println("匿名内部类");}};person.say();}
}
去掉Person的abstra关键字变为普通类依然可以使用匿名内部类
区别在于抽象类new时必须写匿名内部类,而普通类不强制。

5、lambda表达式

  • 标准格式为:([参数类型 参数名称,]...) ‐> { 代码语句,包括返回值 }
  • 和匿名内部类不同,Lambda仅支持接口,不支持抽象类
  • 接口内部必须有且仅有一个抽象方法(可以有多个方法,但是必须保证其他方法有默认实现,必须留一个抽象方法出来)
import com.test.*;public class Main {public static  void main(String [] argv){Study study=()->System.out.println("我是study");//重写了接口里study抽象方法study.study();}
}
package com.test;public interface Study {void study();static void  a(){}default void b(){}public  static final int d=0;
}

6、方法引用

方法引用就是将一个已实现的方法,直接作为接口中抽象方法的实现
import com.test.*;public class Main {public static  void main(String [] argv){Study study=Integer::sum;System.out.println(study.study(3,5));//8}
}
package com.test;public interface Study {int  study(int a,int b);}

相关文章:

JavaSE:11、内部类

学习 资源1 学习资源 2 1、成员内部类 import com.test.*;public class Main {public static void main(String [] argv){Person personnew Person();//Person构造函数Person.Woman womanperson.new Woman();//woman构造函数} }package com.test;public class Person {publ…...

VTD激光雷达(7)——07_OptiX_Variables_Advanced

文章目录 前言一、总结 前言 一、 1 和上图蓝绿的区别在于 总结...

运维工程师面试整理-自动化运维

自动化运维是现代运维工作中不可或缺的一部分,它可以大幅提升效率,减少人为错误,并使得大规模环境管理变得可行。在面试中,面试官通常会通过自动化运维相关的问题来评估你在自动化工具使用、脚本编写、CI/CD 实践以及系统监控等方面的能力。以下是关于自动化运维的详细内容…...

【JAVA基础】实现Tomcat基本功能

文章目录 TCP/IP协议Socket编程ServletTomcat 在搜索了两三天之后,也是大概弄懂了Tomcat是个什么东西,我们在说Tomcat之前,先来了解一下下面这三个东西: TCP/IP协议 TCP/IP 是互联网通信的基础协议。TCP(传输控制协议…...

风力发电叶片缺陷检测数据集

风力发电叶片缺陷检测数据集】nc: 4 names: [Burn Mark, Coating_defects, Crack, EROSION ] 名称:【烧伤痕迹, 涂层缺陷, 裂缝,侵蚀】共1095张,8:1:1比例划分,(train;876张,val:109张&#xff…...

数据类型自动转换的解决方案

数据类型自动转换的解决方案 java8、jdk8背景 为方便测试框架数据处理以及方便查看一些数据,弄了一个工具类,部分要点简要说明。 主要涉及到字符串与其他类型的相互转换,无其他类型之间的相互转换。 轻量测试框架实现与使用的总篇可见此文…...

大厂校招:唯品会Java面试题及参考答案

SortedSet 的原理 SortedSet 是一个有序的集合接口,它继承自 Set 接口。在 Java 中,常见的实现类有 TreeSet。 TreeSet 实现了 SortedSet 接口,它使用红黑树来维护集合中元素的有序性。红黑树是一种自平衡的二叉搜索树,具有以下特点: 每个节点要么是红色,要么是黑色。根节…...

Qt常用控件——QLCDNumber

文章目录 QLCDNumber核心属性倒计时小程序倒计时小程序相关问题 QLCDNumber核心属性 QLCDNumber是专门用来显示数字的控件,类似于这样: 属性说明intValue获取的数字值(int).value获取的数字值(double)和intValue是联动的例如value设为1.5,in…...

专业学习|GERT网络概览(学习资源、原理介绍、变体介绍)

一、GERT 网络概览 GERT(Graphical Evaluation Review Technique,图示评审技术)是一种结合流线图理论(Flow Graphical Theory)、矩母函数(Moment Generating Function)、计划评审技术(Program Evaluation Review Technique)解决随机网络问题的方法,描述各…...

搭建一个基于角色的权限验证框架

说明:基于角色的权限验证(Role-Based Access Control,RBAC)框架,是目前大多数服务端的登录校验框架。本文介绍如何快速搭建一个这样的框架,不用Shiro、Spring Security、Sa-Token这样的“大框架”实现。 R…...

下载chromedriver驱动

首先进入关于ChromeDriver最新下载地址:Chrome for Testing availability 进入之后找到与自己所匹配的,在浏览器中查看版本号,下载版本号需要一致。 下载即可,解压,找到 直接放在pycharm下即可 因为在环境变量中早已配…...

在STM32工程中使用Mavlink与飞控通信

本文讲述如何在STM32工程中使用Mavlink协议与飞控通信,特别适合自制飞控外设模块的项目。 需求来源: 1、增稳云台里的STM32单片机需要通过串口接收飞控传来的云台俯仰、横滚控制指令和相机拍照控制指令; 2、自制的有害气体采集器需要接收飞…...

【Elasticsearch】-7.17.24版本接入

官网 https://www.elastic.co/cn/downloads/elasticsearch 本项目基于windows环境下,其他环境操作类似 1、初始化配置 打开config/elasticsearch.yaml 添加如下配置 cluster.name: dams_clusternetwork.host: 127.0.0.1 http.port: 9200# 不开启geo数据库 inge…...

ShouldSniffAttr在自动化测试中具体是如何应用?

在自动化测试中,ShouldSniffAttr 这样的函数名通常暗示它是一个用于断言(assertions)的工具,用于检查某个元素或属性是否符合预期的条件。 虽然这不是一个标准的函数名,但我们可以根据命名推测其用途。 例如&#xf…...

前端vue3打印,多页打印,不使用插件(工作中让我写一个打印功能)

说下总体思路,创建一个组件,里面放多个span字段,然后根据父组件传入的参数,生成子组件,最好我们打印子组件的信息即可。通过我多次ai,探索最后成功了。 子组件代码 media print 这个我要讲一下&#xff…...

传感技术是如何实现实时监测和控制的呢

传感技术在力士乐拧紧系统中实现实时监测和控制的方式主要通过以下几个步骤进行: 一、传感器数据采集 1. 传感器种类: 力士乐拧紧系统中可能包含多种传感器,如力矩传感器、角度传感器和转速传感器等。这些传感器各自负责检测拧紧过程中的不…...

为什么mac打不开rar文件 苹果电脑打不开rar压缩文件怎么办

你是否遇到过这样的情况,下载了一个rar文件,想要查看里面的内容,却发现Mac电脑无法打开。rar文件是一种常见的压缩文件格式,它可以将多个文件或文件夹压缩成一个文件,节省空间和传输时间。如此高效实用的压缩文档&…...

linux下日志系统setvbuf接口及结构体 handle_file_t成员介绍

typedef struct handle_file_t {uint8_t *wkey;//用于存储写入文件时可能需要的加密密钥int cflag;//用于表示日志文件的某些配置标志,例如是否启用压缩、是否启用加密等char *file_path;//用于存储日志文件的路径FILE *…...

ESP8266+httpServer+GET+POST实现网页验证密码

1. 代码 #include "esp_http_server.h" #include "esp_log.h" #include "web_server.h"// 辅助宏&#xff0c;用于计算两个数中的较小值 #define MIN(a, b) ((a) < (b) ? (a) : (b))static const char *TAG "wifi web_server";c…...

git仓库修改ip,本地代码修改

只需求修改本地项目下面的.git文件夹下的config 替换ip即可...

FastAPI类型提示:Self的终极指南:提升代码可读性与维护性的完整教程

FastAPI类型提示&#xff1a;Self的终极指南&#xff1a;提升代码可读性与维护性的完整教程 【免费下载链接】fastapi FastAPI framework, high performance, easy to learn, fast to code, ready for production 项目地址: https://gitcode.com/GitHub_Trending/fa/fastapi …...

OpenClaw技能开发入门:为Qwen3.5-4B-Claude定制数学解题模块

OpenClaw技能开发入门&#xff1a;为Qwen3.5-4B-Claude定制数学解题模块 1. 为什么需要数学解题模块 去年辅导侄女做几何证明题时&#xff0c;我发现市面上大多数AI工具要么只能给出最终答案&#xff0c;要么解题步骤过于简略。作为一个喜欢折腾技术的程序员&#xff0c;我决…...

InternLM2-Chat-1.8B多场景落地:跨境电商产品描述生成+多语言翻译实战

InternLM2-Chat-1.8B多场景落地&#xff1a;跨境电商产品描述生成多语言翻译实战 1. 跨境电商的痛点与AI解决方案 跨境电商卖家每天面临着一个共同的挑战&#xff1a;如何为成千上万的商品快速生成高质量的产品描述&#xff0c;并且还要满足不同语言市场的需求。传统的人工撰…...

3大核心功能揭秘:CELLxGENE如何让单细胞数据分析变得如此简单

3大核心功能揭秘&#xff1a;CELLxGENE如何让单细胞数据分析变得如此简单 【免费下载链接】cellxgene An interactive explorer for single-cell transcriptomics data 项目地址: https://gitcode.com/gh_mirrors/ce/cellxgene 在单细胞转录组学研究中&#xff0c;数据分…...

智能驾驶之红绿灯识别 斑马线识别 减速带识别 yolo数据集 深度学习数据集 第10625期

智能驾驶之红绿灯识别 斑马线识别 减速带识别 yolo第10625期 README 项目概述 本数据集聚焦于智能驾驶核心道路要素的识别任务&#xff0c;提供高质量标注图像&#xff0c;专为训练和评估目标检测模型而设计。数据涵盖城市道路常见交通设施与标记&#xff0c;适用于自动驾驶感知…...

Unity3D物体缩放避坑指南:为什么你的Transform.localScale总是不生效?

Unity3D物体缩放避坑指南&#xff1a;为什么你的Transform.localScale总是不生效&#xff1f; 在Unity3D开发中&#xff0c;Transform.localScale属性看似简单&#xff0c;却隐藏着许多让开发者头疼的陷阱。不少开发者都遇到过这样的场景&#xff1a;明明代码里设置了localScal…...

主流推理引擎选型指南:从ONNX、OpenVINO到TensorRT与ncnn的实战场景解析

1. 主流推理引擎全景概览 第一次接触AI模型部署时&#xff0c;我对着各种推理引擎文档看得一头雾水。直到在真实项目中踩过几次坑才明白&#xff0c;选对推理引擎就像给赛车选轮胎——用错类型再好的引擎也跑不出速度。目前市面上主流的四大推理方案各有绝活&#xff1a;ONNX像…...

提升大语言模型对话体验:text-generation-webui全流程优化指南

提升大语言模型对话体验&#xff1a;text-generation-webui全流程优化指南 【免费下载链接】text-generation-webui A Gradio web UI for Large Language Models. Supports transformers, GPTQ, AWQ, EXL2, llama.cpp (GGUF), Llama models. 项目地址: https://gitcode.com/G…...

反线性学习—— 不是“按顺序学完教材”,是“围绕目标把知识长出来”

反线性学习—— 不是“按顺序学完教材”&#xff0c;是“围绕目标把知识长出来”在传统的学习习惯中&#xff0c;我们往往有一种 “进度条强迫症”&#xff1a;只要书看完了、课听完了、笔记记满了&#xff0c;就觉得自己“学完了”。 但现实往往很残酷&#xff1a;当你合上书本…...

COMSOL声子晶体复能带模型与PDE模块:声学黑洞复能带模型及实虚能带绘制与二维结构分析

comsol声子晶体复能带模型 PDE模块 声学黑洞 复能带模型 实能带与虚能带的绘制 参考论文 前两个是论文图&#xff0c;后四个是模型及结果图。 可根据模型设置&#xff0c;进行其他二维结构的分析复能带这玩意儿搞声子晶体的肯定不陌生&#xff0c;但用COMSOL PDE模块手搓模型…...