首页 > 编程语言 >16-咸鱼学Java-内部类补充

16-咸鱼学Java-内部类补充

时间:2022-12-14 15:07:13浏览次数:47  
标签:Java 内部 16 void final static 咸鱼 Test public


上一篇文章,说了实例内部类和静态内部类,这篇文章重点说明,本地内部类和方法内部类

本地内部类

也叫本地方法内部类,局部内部类。指在一个方法内定义的类,只有在当前方法中才能对局部内部类里面的方法以及变量进行访问,局部内部类只能访问其所在方法的final类型变量。

class test1
{
private static int data1 = 1000;
private final int data2 = 10000;
public void test()
{
final int data = 100; //不可改变数
class Inner{
private int a = 10;
final int b =10;
private static final int c = 10; //立即数不可更改
//private static int e = 10; //erro不能定义纯static类型
//private static final test1 d = null; //erro不能获得静态外部类
public void show()
{
System.out.println(a+b);
System.out.println("testdata:"+data);//可以访问本类所在方法中的final修饰的变量
System.out.println("Outerdata:"+data1);//可以访问外部类的static变量
System.out.println("Outerdata:"+data2);//可以访问外部类的static变量
}
}
Inner in = new Inner();
in.show();
}

}
public class Test {
public static void main(String[] args) {
test1 a = new test1();
a.test();
}
}

☆ ☆ ☆ 匿名内部类☆ ☆ ☆

匿名内部类经常使用

public class Test {
public static void showTest(Test a)
{
a.show();
}
public void show()
{
System.out.println("Test:Show");
}
public static void main(String[] args) {
Test a = new Test();
showTest(a);
showTest(new Test()
{

@Override
public void show() {
System.out.println("内部类SHow");
}

}
);
}
}

从以上代码可以看出来,匿名内部类就相当于继承了目标类,可以在匿名内部类中重写一些类的方法等等。这样可以简化变成,上面的代码可以分解为

先创建一个继承Test的子类
重写Show方法
New出对象
放入函数

而匿名内部类可以很方便的跳过很多步骤,减少代码量,减少代码冗余。


标签:Java,内部,16,void,final,static,咸鱼,Test,public
From: https://blog.51cto.com/u_12938555/5936974

相关文章

  • LeetCode-Java-136. Single Number
    题目Givenanon-emptyarrayofintegers,everyelementappearstwiceexceptforone.Findthatsingleone.Note:Youralgorithmshouldhavealinearruntimecompl......
  • LeetCode-Java-637. Average of Levels in Binary Tree
    题目Givenanon-emptybinarytree,returntheaveragevalueofthenodesoneachlevelintheformofanarray.Example1:Input:3/\920/\15......
  • Java泛型链表实现
    ​​链表简介​​代码实现packagecom.chenxixuexi;/***泛型链表*单链表逆置数据--节点*求单链表倒数第K节点*求两个单链表是否相交相交交点*判断单链表是否有......
  • 15-咸鱼学Java-内部类
    实例内部类实例内部类简而言之就是类里面嵌入着类,就像环套环一样Demo:classOuterClass2//外部类{privateinta=1000;publicOuterClass2(){Sy......
  • LeetCode-Java-559. Maximum Depth of N-ary Tree
    题目Givenan-arytree,finditsmaximumdepth.Themaximumdepthisthenumberofnodesalongthelongestpathfromtherootnodedowntothefarthestleafnode......
  • 14-咸鱼学Java-面向对象基础:类
    类类就相当于自定义类型,有自己的数据域,有自己的方法。属于一种用户自定义类型。类的目的就是模拟现实中存在的物体,如一个Person类,一个人他有自己的名字,年龄,性别等等,他有自己......
  • 17-咸鱼学Java-内部类实际应用-Java链表
    ​​内部类​​,​​未使用内部类的链表​​可以点击名字查看。此篇文章主要介绍运用内部类的Java链表的写法。链表正如其名,就像一个一个珠子被串起来,只有前一个珠子和......
  • LeetCode-Java-876. Middle of the Linked List
    题目Givenanon-empty,singlylinkedlistwithheadnodehead,returnamiddlenodeoflinkedlist.Iftherearetwomiddlenodes,returnthesecondmiddlenode.......
  • 咸鱼学Java-多线程基础
    实现多线程的方法1.继承Thread,并且重写run方法(线程体)2.实现Runnable接口,实现run方法(线程体)必须重写run1.继承ThreadclassMyThreadextendsThread{publicMyThr......
  • 剑指Offer-Java-用两个栈实现队列
    题目用两个栈来实现一个队列,完成队列的Push和Pop操作。队列中的元素为int类型。代码只需要来回倒就可以实现了。importjava.util.Stack;publicclassSolution{Stack......