java静态内部类示例解释
Posted 小志的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java静态内部类示例解释相关的知识,希望对你有一定的参考价值。
1、静态内部类实例代码及解释
package com.rf.rabiitmq;
/**
* @description: 定义一个外部类,外部类中定义静态内部类
* @author: xz
* @create: 2021-08-11 20:30
*/
public class Outer {
//定义一个实例变量
private int number;
//定义一个静态变量
private static int sum;
//定义一个非静态方法
public void select(){
}
//定义一个静态方法
public static void delete(){
/**
* 在外部类中调用内部类的属性和方法
*/
Outer.Inner.result=1;//可以通过静态内部类的全类名来调用静态内部类的静态属性(外部类名.静态内部类名.属性)
Outer.Inner.walk(); //可以通过静态内部类的全类名来调用静态内部类的静态方法(外部类名.静态内部类名.方法)
//Outer.Inner.count=1; //不能通过类静态内部类的全类名来调用内部类的非静态属性
//Outer.Inner.go(); //不能通过类静态内部类的全类名来调用内部类的非静态方法
Inner inner = new Inner();
inner.count=1; //可以通过创建内部类实例来调用静态内部类的非静态属性
inner.go();//可以通过创建内部类实例来调用静态内部类的非静态方法
}
/**
* 定义一个静态内部类
*/
public static class Inner{
//定义一个实例变量
private int count;
//定义一个静态变量
private static int result;
//定义一个匿名代码块
{
}
//定义一个静态代码块
static {
}
//定义一个普通方法
public void go(){
}
//定义一个静态方法
public static void walk(){
/**
* 在静态内部类中调用外部类的属性和方法
*/
int a = sum; //可以直接调用外部类的静态属性
delete(); //可以直接调用外部类的静态方法
//int b = number; //直接调用外部类的非静态属性出错(编译出错)
//select(); //直接调用外部类的非静态方法出错(编译出错)
Outer outer = new Outer();
int c=outer.number;//可以通过创建外部类实例来调用外部类的非静态属性
outer.select(); //可以通过创建外部类实例来调用外部类的非静态方法
}
}
}
以上是关于java静态内部类示例解释的主要内容,如果未能解决你的问题,请参考以下文章
错误:这个片段内部类应该是静态的 [ValidFragment]