java中的静态与匿名内部类总结

当GO.db安装失败时,生物信息学新手应该知道的5个底层逻辑 本文为生物信息学新手提供了解决GO.db安装失败的5个关键底层逻辑,包括网络连接与镜像源设置、版本兼容性检查、依赖关系管理、SQLite存储机制理解以及调试技巧。特别针对Bioconductor的GO.db包安装问题,详细介绍了如何通过切换国内镜像、管理版本冲突和解决依赖问题来成功安装,帮助用户高效克服常见安装障碍。 阅读详情

Java语言允许在类中再定义类,这种在其它类内部定义的类就叫内部类。内部类又分为:常规内部类、局部内部类、匿名内部类和静态嵌套类四种。

1、静态内部类定义

静态内部类,定义在类中,任何方法外,用static定义;静态内部类只能访问外部类的静态成员。
生成(new)一个静态内部类不需要外部类成员:这是静态内部类和成员内部类的区别。静态内部类的对象可以直接生成:Outer.Inner in=new Outer.Inner();而不需要通过生成外部类对象来生成。这样实际上使静态内部类成为了一个顶级类。可以定义私有静态内部类。
2、java实现静态内部类注意事项

将某个内部类定义为静态类,跟将其他类定义为静态类的方法基本相同,引用规则也基本一致。不过其细节方面仍然有很大的不同。具体来说,主要有如下几个地方要引起注意。
1)一般情况下,如果一个内部类不是被定义成静态内部类,那么在定义成员变量或者成员方法的时候,是不能够被定义成静态成员变量与静态成员方法的。也就是说,在非静态内部类中不可以声明静态成员
2)一般非静态外部类可以随意访问其外部类的成员变量以及方法(包括声明为private的方法),但是如果一个内部类被声明为static,则其在访问包括自身的外部类会有诸多的限制。静态内部类不能访问其外部类的非静态成员变量和方法
3)在一个类中创建非静态成员内部类的时候,有一个强制性的规定,即内部类的实例一定要绑定在外部类的实例中。然后要在一个外部类中定义一个静态的内部类,不需要利用关键字new来创建内部类的实例。即在创建静态类内部对象时,不需要其外部类的对象
3、静态内部类示例

java在实现LinkedList时使用了如下内部类:
public class LinkedList<E>
extends AbstractSequentialList<E>
implements List<E>, Deque<E>, Cloneable, java.io.Serializable
{
........
private static class Entry<E> {
E element;
Entry<E> next;
Entry<E> previous;

Entry(E element, Entry<E> next, Entry<E> previous) {
this.element = element;
this.next = next;
this.previous = previous;
}
}

private Entry<E> addBefore(E e, Entry<E> entry) {
Entry<E> newEntry = new Entry<E>(e, entry, entry.previous);
newEntry.previous.next = newEntry;
newEntry.next.previous = newEntry;
size++;
modCount++;
return newEntry;
}
........
}
这里即静态内部类的典型用法


匿名内部类也就是没有名字的内部类

正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写

但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口

 

实例1:不使用匿名内部类来实现抽象方法
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
abstract  class  Person {
     public  abstract  void  eat();
}
 
class  Child  extends  Person {
     public  void  eat() {
         System.out.println( "eat something" );
     }
}
 
public  class  Demo {
     public  static  void  main(String[] args) {
         Person p =  new  Child();
         p.eat();
     }
}

运行结果:eat something

可以看到,我们用Child继承了Person类,然后实现了Child的一个实例,将其向上转型为Person类的引用

但是,如果此处的Child类只使用一次,那么将其编写为独立的一个类岂不是很麻烦?

这个时候就引入了匿名内部类

 

实例2:匿名内部类的基本实现
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
abstract  class  Person {
     public  abstract  void  eat();
}
 
public  class  Demo {
     public  static  void  main(String[] args) {
         Person p =  new  Person() {
             public  void  eat() {
                 System.out.println( "eat something" );
             }
         };
         p.eat();
     }
}

运行结果:eat something

可以看到,我们直接将抽象类Person中的方法在大括号中实现了

这样便可以省略一个类的书写

并且,匿名内部类还能用于接口上

 
实例3:在接口上使用匿名内部类
?
interface  Person {
     public  void  eat();
}
 
public  class  Demo {
     public  static  void  main(String[] args) {
         Person p =  new  Person() {
             public  void  eat() {
                 System.out.println( "eat something" );
             }
         };
         p.eat();
     }
}

运行结果:eat something

 

由上面的例子可以看出,只要一个类是抽象的或是一个接口,那么其子类中的方法都可以使用匿名内部类来实现

最常用的情况就是在多线程的实现上,因为要实现多线程必须继承Thread类或是继承Runnable接口

 

实例4:Thread类的匿名内部类实现
?
public  class  Demo {
     public  static  void  main(String[] args) {
         Thread t =  new  Thread() {
             public  void  run() {
                 for  ( int  i =  1 ; i <=  5 ; i++) {
                     System.out.print(i +  " " );
                 }
             }
         };
         t.start();
     }
}

运行结果:1 2 3 4 5

 

实例5:Runnable接口的匿名内部类实现
?
1
2
3
4
5
6
7
8
9
10
11
12
13
public  class  Demo {
     public  static  void  main(String[] args) {
         Runnable r =  new  Runnable() {
             public  void  run() {
                 for  ( int  i =  1 ; i <=  5 ; i++) {
                     System.out.print(i +  " " );
                 }
             }
         };
         Thread t =  new  Thread(r);
         t.start();
     }
}

运行结果:1 2 3 4 5



图解说明JLink驱动与目标板电源匹配的关键细节 深入讲解JLink驱动安装及使用过程中,如何正确匹配目标板电源,避免常见通信故障。通过图解方式清晰展示关键连接细节,确保调试稳定可靠,是嵌入式开发中不可或缺的实战经验分享。 阅读详情

相关推荐

SAP MM采购合同创建全解析:ME31K操作与后台逻辑

在SAP ERP的物料管理模块中,采购合同作为框架协议的核心,定义了企业与供应商之间的长期供货关系。它与采购订单不同,合同不直接产生收货或发票,而是为后续采购订单提供数据源。创建合同(事务码ME31K)时,需要区分数量合同与金额合同,并维护抬头、行项目、有效期、价格条件和税码等关键信息。SAP通过源确定机制在创建采购订单时自动匹配合同,同时审批策略、编码范围和输出类型也会影响合同的实际可用性。掌握合同创建逻辑,能有效解决采购订单无法带出合同、审批未触发、价格缺失等高频问题。从ME31K实操出发,系统梳理采购

weixin_30000735的博客 199

静态内部类、匿名内部类

然后在静态内部类Inner中,编写了一个show()方法,在show()方法中打印了外部静态变量m,第14~15行代码声明了一个内部类对象inner,并使用inner对象调用show()方法测试对外部类静态变量m的调用。静态内部类,就是使用static关键字修饰的成员内部类。与成员内部类相比,在形式上,静态内部类只是在内部类前增加了static关键字,但在功能上,静态内部类只能访问外部类的静态成员,通过外部类访问静态内部类成员时,可以跳过外部类直接访问静态内部类。匿名内部类是没有名称的内部类。...

m0_66007452的博客 1251

ChatGPT Windows桌面版:从安全下载到高效配置的全流程指南

WebView封装技术是将网页应用转化为独立桌面程序的核心方法,它通过嵌入浏览器内核实现跨平台功能复用。其原理在于利用Electron或Tauri等框架,将Web内容打包进原生应用外壳,同时注入系统级API调用能力。这项技术的工程价值在于显著提升了Web应用的系统集成度和用户体验,使其能够支持全局快捷键、独立进程和本地数据存储等原生特性。在AI助手深度集成工作流的应用场景中,这种封装模式解决了浏览器多标签页切换繁琐、会话管理不便等痛点。本文以ChatGPT桌面客户端为例,详细解析了基于开源项目的安全下载路径

weixin_30437847的博客 489

Java学习笔记-匿名类,静态内部类,静态类,以及类限定词等

Java是面向对象的语言,对象的模板就是类 类本身有static修饰的静态类,和没有static修饰的非静态类(普通类) 静态类特点: 全局唯一,任何一次修改都是全局的修改 只加载一次,优先级高于非静态类 静态类不能被实例化,使用时候不需要依赖于实例对象 生命周期和jvm生命周期相同 普通类和静态类的区别: 静态类不需要有指向外部类的引用,但普通类需要有 静态类不能访问外部类的非静态成员,但普通类可以访问外部类的静态和非静态成员 静态类不用先创建外部类,普通类不能脱离外部类实体被创建,就是必须先实例化

weiqu4386的博客 397

频谱分析常见坑:STM32的ADC采样+FFT处理时如何避免这5个错误

本文深入剖析了在STM32平台上进行ADC采样与FFT频谱分析时,工程师最常遇到的五个关键错误与性能陷阱。内容涵盖从采样频率设置、频谱泄露处理、ADC配置优化,到谐波识别校准及系统实时性设计,提供了详尽的避坑指南与实战调优策略,旨在帮助开发者构建稳定、精确的嵌入式频谱分析或波形识别系统。

7up55的博客 624

CS算法实战:用MATLAB从零实现SAR点目标成像(附完整代码)

本文详细介绍了如何使用MATLAB从零实现SAR点目标CS成像算法,涵盖Chirp Scaling(CS)算法的核心理论、距离徙动校正(RCMC)和方位压缩等关键步骤。通过完整的代码示例和实战技巧,帮助读者掌握SAR成像处理算法,提升遥感图像处理能力。

weixin_29211309的博客 180

内部类(下)匿名内部类,静态内部类的使用

该文将会介绍匿名内部类、静态内部类的使用,补充完毕java中的内部类。补充内容为向上转型为接口、使用this关键字获取引用、内部类的继承。本文简单介绍了匿名内部类、静态内部类,以及内部类的继承。补充完整了内部类的使用。如果读者对文章所提到的内容有什么疑问或补充,欢迎在评论区中评论,博主会及时进行反馈的。

weixin_74141222的博客 528

uniapp: err = err.replace(this._UNI_INPUT_DIR_REG, ‘UNI_TypeError: err.replace is not a function问题修复

问题:uniapp的依赖包出现了问题,需要升级解决办法:升级uniapp依赖包,下载"semver"和”@dcloudio/uni-i18n“两个包,本地锁定postcss为7版本,就解决了。

py_boy的博客 1453

内部类、匿名内部类、静态内部类

一、内部类(内置类、嵌套类)         1、内部类的访问规则:内部类可以直接访问外部类的成员,包括私有(private)。     之所以内部类可以直接访问外部类的成员,是应为内部类中持有了一个外部类的引用:外部类名.this         2、外部类要访问内部类就必须要建立内部类对象。  ...

weixin_30763397的博客 177

手把手教你用ET-BERT预训练模型搞定加密流量分类(附完整代码)

本文详细介绍了如何使用ET-BERT预训练模型实现加密流量分类,包括环境配置、数据预处理、模型微调及优化策略。通过实战代码示例,帮助开发者快速掌握这一技术,提升网络安全领域的加密流量分析能力。

weixin_29166013的博客 494

Oasys安装教程

在基环境下执行然后去 C:\Users.condarc打开 .condarc这个文件 删除干净里面的东西。

weixin_44254178的博客 1297

详解Java的静态匿名内部类(呕心沥血制作)

Java的静态内部类就是在定义的类中添加一个static,此时就是静态内部类了,下面用一个例子来详细的讲解Java的匿名内部类 package com.zzuli.JavaSe; /** * @author liugang * @version 1.0 * @date 2020/11/27 10:40 */ public class Outer { //定义一个实例变量和一个静态变量 private int a; private static int b;

superliug的博客 1437

构网型逆变器下垂控制与电流限幅策略研究:理论、仿真与代码实现

随着分布式发电和微电网技术的快速发展,构网型(Grid-Forming, GFM)逆变器因其能够自主建立电压和频率参考、支撑弱电网及孤岛运行而受到广泛关注。本文提出并实现了一种基于下垂控制的构网型逆变器控制策略,将逆变器等效为受控电压源,通过L型滤波器接入配电网。在公共耦合点(PCC)处实时测量三相电压和电流,计算有功和无功功率,进而采用P-w和Q-V下垂控制生成内部频率和电压幅值,合成三相参考电压。针对故障情况下过电流问题,设计了一种自适应电流限幅模块:当电流幅值超过设定上限时,动态降低电压参考系数k_s

huanghm88的专栏 156

Java面试要点21 - Java中的静态内部类与匿名内部类

本文目录一、引言二、成员内部类三、静态内部类四、匿名内部类五、局部内部类六、实际应用示例七、总结 一、引言 内部类是Java提供的一种特殊的类定义方式,它允许我们在一个类的内部定义另一个类。Java支持多种类型的内部类,包括静态内部类、成员内部类、局部内部类和匿名内部类。通过使用内部类,可以更好地组织代码结构,实现更高的封装性,并提供更灵活的编程方式。 二、成员内部类 成员内部类是最基本的内部类形式,它作为外部类的一个成员存在。成员内部类可以访问外部类的所有成员,包括私有成员。这种特性使得内部类成为实现

程序媛学姐的博客 520

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

java中的四种内部类详解(成员类内部类,静态内部类,局部内部类,匿名内部类)

引领完成Docker的安装、部署、管理和扩展,让其经历从测试到生产的整个开发生命周期,深入了解Docker适用于什么场景。并且这本Docker的学习权威指南介绍了其组件的基础知识,然后用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker的API,如何扩展Docker。

2401_84048179的博客 683

计算机控制技术及应用

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

Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)

Java中的内部类(成员内部类、静态内部类、局部内部类、匿名内部类)   我们先看这样一段话:人是由大脑、肢体、器官等身体结果组成。而组成我们人体的心脏它也有自己的属性和行为(血液、跳动),显然,此处不能单方面用属性或者方法表示一个心脏了,而需要一个类,但是这个类要依赖于人这个类存在(因为心脏不能脱离人体而存活,当然不考虑现今社会的发达科技,只从正常情况下来说),所心脏以需要写在人类的内部...

ratel的博客 267

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java中的内部类:成员内部类、局部内部类、匿名内部类、静态内部类

参考:https://www.cnblogs.com/dolphin0520/p/3811445.html 1.成员内部类 创建 创建成员内部类对象的一般形式为: 外部类类名.内部类类名 xxx = 外部类对象名.new 内部类类名() 位置 成员内部类是最普通的内部类,它定义在一个类的内部 结构 可以定义非静态属性和方法。 不可以定义static修饰的属性和方法。 但可以定义static final修饰的编译期变量。 首先要先知道sttaic final修饰的变量叫做常量,常量分为编译期常量和非编译期

乾坤未定,你我皆是黑马 260

Java中的四种内部类(成员内部类、局部内部类、静态内部类、匿名内部类)

(在外部类中访问局部内部类,创建对象 Outer.Inner in=new Outer().new Inner() )//成员内部类不能有静态变量,但可以访问外部类的所有成员//成员内部类//内部类中可以和外部类的实例变量共存//用静态修饰的变量是不允许的//用静态修饰的常量允许//访问内部类中的i//访问内部类中的i//访问外部类中的i//内部类和外部类变量没同名,可以直接访问外部类变量//外部类的非静态方法访问内部类//直接创建内部类的对象。

csdnnbyyds的博客 833

Java中的内部类:实例内部类,静态内部类,局部内部类,匿名内部类(四类详细讲解版)

Java内部类是定义在另一个类或方法内部的类,分为四种类型:静态内部类、实例内部类、局部内部类和匿名内部类。 静态内部类:使用static修饰,无需外部类实例即可创建对象,但只能访问外部类的静态成员。 实例内部类:未使用static修饰,必须先创建外部类对象才能实例化,能访问外部类的所有成员(包括私有)。 局部内部类:定义在方法或代码块内,仅能在定义位置使用,作用范围有限。 匿名内部类:无类名,直接实例化并重写方法,适用于一次性使用场景。 内部类编译后生成独立字节码文件,增强了代码封装性,但需注意访问权限和

2301_77311065的博客 613

【java基础】内部类,局部内部类,匿名内部类、静态内部类、接口中的内部类...

内部类: 1、定义在一个类中的内部类,内部类的实例化伴随着外围类所定义的方法来构造,内部类对象有外围类的隐式引用,所以内部类可以直接访问外围类的外围类的域,包括私有的,这是内部类的访问特权,所以比常规类功能更加强大。 2、内部类可以对同一个包中的其他类隐藏起来,不过可以通过 OuterClass.InnerClass来引用public声明的内部类。 局部内部类: 1、内部类挪到方法内...

weixin_34198797的博客 85

JAVA中的四个内部类-成员内部类,静态内部类,方法内部类,匿名内部类

总结一下,JAVA类中的四个内部类

neven7的专栏 893

一篇文章搞懂Java中的内部类,什么是内部类,内部类的概念和分类,静态内部类,局部内部类,匿名内部类,以及内部类代码图文演示,Java面试内部类

内部类、java、java se

zhangfuping123456789的博客 7675
上一篇: java 利用反射机制,获取实体所有属性和方法,并对属性赋值
下一篇: JAVA获取时间戳,哪个更快
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值