彦舜原创,优快云首发:方法中内部类对象的创建位置有何原理?方法中内部类直接访问方法中参数或变量有何限制?等等

Java小白入门200例94之Java内部类--局部内部类 作者简介 作者名:编程界明世隐 简介:优快云博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 引言 很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢? 其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大 阅读详情
package cm.inwardclass.method;

//这个类用来测试:在普通方法里面定义内部类
public class ModeThundredEleven {
	public static void main(String[] args) {
		//使用测试类,创建该类对象
		new Sky().fun();
	}
}

//创建一个普通类作为外部类,与主类同级,关键字class,外部类
class Sky{
	//声明私有成员属性(私有成员属性或方法),非static变量
	private String msg = "Hello World!";
	
	//定义一个外部类普通方法,成员方法
	public void fun() {
		//定义一个局部变量,并手动初始化
		//在方法中定义的内部类,从JDK1.8开始,可以直接访问方法中的局部变量
		String name = "作家彦舜";
		System.out.println(msg);
		//直接调用,报错:Cannot make a static reference to the non-static field Sky.msg
		//无法对非静态字段Sky.msg进行静态引用
//		System.out.println(Sky.msg);
		
//		new Land().print();  //报错:代码执行顺序,先有类还是先有对象
		
		//在普通方法里面声明内部类
		//创建本类对象调用本类成员,类对象创建位置遵守以往的语法结构,在它的上一级
		class Land{
			//创建一个内部类普通方法,内部类成员方法
			public void print() {
				//成员属性,在整个类的作用域
				System.out.println(msg = "彦舜");
				//在方法中定义的内部类,从JDK1.8开始,可以直接访问方法中的局部变量
				System.out.println(name);
				//报错:Cannot make a static reference to the non-static field Sky.msg
//				System.out.println(Sky.msg);
			}
		}
		
		//创建本类对象调用本类成员,类对象创建调用位置遵守以往的语法结构,在它的上一级,或主方法中
		new Land().print();
	}
}

彦舜原创,优快云首发

30.Python面向对象(三)【类方法和静态方法、动态绑定属性和__slots__限制绑定、@property】 阅读详情

相关推荐

Cursor使用教程,有点难

Cursor Code Editor 不仅仅是一个代码编辑器,它更是一个集成了 AI 的全功能开发环境,帮助你从代码编写到优化的整个过程变得更加智能和高效。它通过内置的 AI 代码补全、错误检测和自动修复功能,大大减少了手动编写代码的负担,帮助你快速完成开发任务。同时,Cursor 还与多种前沿的 AI 大模型集成,包括 OpenAI 的 GPT-4o、Claude 3.5 和 Meta 的 Llama 3.1。

xiaofeitunAI的博客 1万+

C++学习笔记-- 如何限制类的对象只能在堆上创建?如何限制对象只能在栈上创建?

引用自 leetcode 的c++面试突击。 如何限制类的对象只能在堆上创建?如何限制对象只能在栈上创建? 说明:C++ 中的类的对象的建立分为两种:静态建立、动态建立。 静态建立:由编译器为对象在栈空间上分配内存,直接调用类的构造函数创建对象。例如:A a; 动态建立:使用 new 关键字在堆空间上创建对象,底层首先调用 operator new() 函数,在堆空间上寻找合适的内存并分配;然后,调用类的构造函数创建对象。例如:A *p = new A(); 限制对象只能建立在堆上: 最直观的思想:避免直

jeason的博客 2271

【文章阅读+代码复现】Point-GNN

Brief 在3D点云语义分割方法中,GNN已经做了很多可用的方案,但是在目标检测上依旧是采用比较传统的CNN和稀疏卷积的组合,这一篇文章是研究了图卷积在3D检测的中的用法。来自卡内基梅隆大学。已经被CVPR2020接收. 这里是 paper 这里是 code Abstruct 一个采用GNN设计的3D目标检测框架 过程是先将点云场景编码成图结构,随后设计了一个叫point-GNN的网络结构,在...

有所为,有所成长 1万+

各内部类的作用、定义、成员限制、访问总结

内部类的作用总括: 1.内部类可以独立的继承一个类和多个接口,提供了多继承的支持(若用接口为不同形式的继承);当然对于匿名内部类没有这样的能力,但是它在重载父类方法方面特别突出。 2.为外部类提供了一个可隐藏的强大的数据结构体。   记忆:1.在内部成员和静态成员相同和区别:     (1)各修饰都一样,包括控制限定和非控制限定。    (2)在外部类的方法中声...

自由理想的足迹 373

Cursor 使用教程(2025年更新版)

官方Cursor详细使用教程在“扩展学习”

我是赛博AI Lewis 7082

R语言TCGA数据下载避坑指南:biolinks包实战中的5个常见错误与解决方案

本文详细介绍了使用R语言的TCGAbiolinks包下载TCGA数据时常见的5个错误及其解决方案,包括安装与加载问题、查询构建参数设置、下载中断处理、数据加载格式不匹配以及版本兼容性问题。通过实战案例和代码示例,帮助生物信息学研究者高效获取TCGA数据,避免常见陷阱。

weixin_30892037的博客 84

java中声明内部类变量_关于java:在方法中定义的内部类要求在方法中声明的变量是最终变量(如果从内部类内部访问它们)...

本问题已经有最佳答案,请猛点这里访问。以下代码在方法中定义了一个类。final class OuterClass{private String outerString ="String in outer class.";public void instantiate(){final String localString ="String in method."; // final is manda...

weixin_28761725的博客 276

Nature、science、cell旗下刊物

Nature\science\cell子刊说明

计算机视觉 5604

Spring 源码全面解析

基本环境: public interface UserService { void queryUser(); } @Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override public void queryUser() { System.out.println("asdasd"); userDa

auerjds的博客 3635

【AHE数据集】中国2019年多源热排放数据集-500m空间分辨率

【AHE数据集】中国2019年多源热排放数据集

WW、forever的博客 411

YOLOv8改进 | Conv篇 | 轻量级下采样方法ContextGuided(大幅度涨点)

ContextGuided通过创新的局部-全局协同机制,解决了传统下采样方法中细节丢失与上下文缺失的核心痛点。实验证明其在YOLOv8上可实现最高2.6%的mAP提升,且计算开销增加不足5%。这种即插即用的设计为实时目标检测系统提供了新的优化方向。创新启示:轻量化不代表简单裁剪,智能信息融合才是未来方向!下一步探索与Transformer结合构建混合架构多尺度上下文融合机制3D点云中的扩展应用资源获取完整训练代码:[GitHub链接]预训练模型:[Google Drive链接]讨论话题。

QQ_778132974的博客 288

【C++】友元、内部类和匿名对象

内部类是一个独立的类, 它不属于外部类,更不能通过外部类的对象去访问内部类的成员。外部类对内部类没有任何优越 的访问权限。注意:内部类就是外部类的友元类,参见友元类的定义,内部类可以通过外部类的对象参数来访 问外部类中的所有成员。但是外部类不是内部类的友元。内部类可以分为两种类型:成员内部类和局部内部类。

qq_64818885的博客 1569

基于工作流的低代码AI应用开发:Flock平台核心架构与实战指南

在AI应用开发领域,工作流编排正成为连接大语言模型(LLM)能力与复杂业务逻辑的关键技术。其核心原理是将任务分解为模块化节点,通过可视化方式定义执行顺序与数据流向,从而实现灵活可控的自动化流程。这种范式极大地提升了开发效率,降低了技术门槛,使得开发者能够聚焦于业务设计而非底层代码。在技术价值层面,工作流编排支持检索增强生成(RAG)、多智能体协作等高级模式,并能通过人工干预节点确保关键流程的可靠性与合规性。其典型应用场景包括智能客服、自动化办公、数据分析助手等。本文以Flock平台为例,深入解析了如何利用其

weixin_26848497的博客 381

【Java基础】为什么局部内部类和匿名内部类只能访问局部final方法

目录 局部内部类和匿名内部类是什么 局部内部类 匿名内部类 为什么局部内部类和匿名内部类只能访问final的局部变量? 局部内部类和匿名内部类是什么 局部内部类 局部内部类类似于局部变量,声明周期就是定义它的代码块的生命周期,例如在方法中定义,声明周期就是和方法相同,在for循环或者if语句中定义就是和for循环和if语句的生命周期相同 public class Test04 { public void run(){ //局部内部类 cl...

Elephant_King的博客 1257

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C++ 内部类

如果一个类定义在另一个类的内部,这个内部类就叫做内部类。内部类是一个独立的类,跟定义在全局相比,他只是受外部类类域限制和访问限定符限制,所以外部类定义的对象中不包含内部类。内部类默认是外部类的友元类。内部类本质也是一种封装,当 A 类跟 B 类紧密关联,A 类实现出来主要就是给 B 类使用,那么可以考虑把 A 类设计为 B 的内部类,如果放到 private/protected 位置,那么 A 类就是 B 类的专属内部类,其他地方都用不了。

Jason_from_China的博客 924

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

java 对象的创建、使用和清除

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Ma...

IMUHERO 5645

java内部类详解

什么是内部类 内部类是指在一个外部类的内部再定义一个类。内部类作为外部类的一个成员,并且依附于外部类而存在的。内部类可为静态,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类。内部类的共性 ①内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类...

大佬请赐教 1010

访问限制

访问限制在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性:>>> bart = Student('Bart Simpson', 59) >>> bart.score 59 >>&gt...

龚道松 406

匿名内部类

匿名内部类是Java中一种特殊的内部类,它没有显式的类名,通常用于实现接口或继承类并重写方法。如果访问方法中的局部变量,该变量必须是final或在Java 8及以上版本中为“有效final”(即只被赋值一次)。类文件生成:编译器会为匿名内部类生成类似外部类名$数字.class的类文件。构造方法:匿名内部类没有构造方法,但可以通过传递参数给父类的构造方法。匿名内部类可以访问外部类的成员变量和方法。// 可以添加其他成员变量和方法。作用域:只能在定义它的代码块内使用。// 实现或重写方法。

2304_80073016的博客 506

C++: 类和对象(下)

内部类本质也是⼀种封装,当A类跟B类紧密关联,A类实现出来主要就是给B类使⽤,那么可以考 虑把A类设计为B的内部类,如果放到private/protected位置,那么A类就是B类的专属内部类,其 他地⽅都⽤不了。当前主流的相对新⼀点的编 译器对于连续⼀个表达式步骤中的连续拷⻉会进⾏合并优化,有些更新更"激进"的编译器还会进⾏ 跨⾏跨表达式的合并优化。通常情况下,类的私有成员不能被外部直接访问,但通过友元声明,类可以赋予特定的函数或类访问这些成员的权限。⼀个类定义在另⼀个类的内部,这个内部类就叫做内部类。

2302_80262940的博客 1230

parfor中不能使用global或persistent变量咋办

前言 在MATLAB中使用parfor,提高彼此不相关的程序运行的效率(比如一些参数扫描),是简单方便的,但是parfor中也存在一些限制。最近遇到这样一种情形:一个描述线性时变系统的ode方程,要对它进行数值积分,其中包含较多的参数,还有几个300kHz采样率的输入信号。最开始没有考虑并行的事,我不想在ode45等函数每次调用ode方程时都传入如此大量的参数,于是使用了最简单的global传递输入信号,用persistent避免每次都初始化系统参数。而后的出现的一些问题和新的需求使我开始思考(折腾)。

qq_41893984的博客 2508

UVM设计模式 ( 二 ) 参数化类、静态变量/方法/类、单例模式、UVM_ROOT、工厂模式、UVM_FACTORY

软件中的设计模式可归纳为三类:创建型,结构型,行为型。本节介绍创建型设计模式在UVM中的应用。 在开始创建型设计模式介绍之前,回顾下Systemverilog中的Parameterized classes 和 Static method 的相关语法。 参数化的类 SV中的参数化的类,类似于Verilog中参数化的模块,例化时指定位宽等的值,在SV中一般用于为类增加数据类型的参数。 如下示例,在声明S_bit句柄时,传入的type类型为bit [1:10],W没有指定默认为5,如果type T没有指定

Holden_Liu的博客 1万+

Java 面向对象(五)

学习内容:掌握对象数组的概念及用法。掌握内部类的特点及应用,以及内部类调用方法中参数的要求。 对学习内容进行实例分析。 1、对象数组 所谓的对象数组,就是指包含了一组相关的对象的数组 说明:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组中的每一个对象都是null值,则在使用时数组中的每一个对象必须分别进行实例化操作。 🌳对象数组的声明: 类[ ] 对象数组名称:new 类[数组长度] ; .........

亮点菌 638

C++入门:类和对象(后)

C++入门:类和对象(后)

2301_76269963的博客 1336

Java内部类、静态类、局部类详解

先看一个例子: class TalkingClock { private int interval; private boolean beep; public TalkingClock(int interval,boolean beep) { this.interval = interval; this.beep = beep;

路途虽然漫长,但庆幸,我们已在路上 929
上一篇: 彦舜原创,优快云首发:Static修饰内部类
下一篇: Polymorphism、Abstract Class、Extends,面向对象特性与面向对象的高级知识部分
彦舜
博客等级 码龄7年 2粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值