广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

惠州Java内部类型之局部内部类_北大青鸟IT计算机学校

作者:邓华发布时间:2021-03-31分类:Java技术浏览:1000


导读:上一篇文章惠州北大青鸟老师给大家讲了Java内部类型中的成员内部类,下面我们一起来学习Java内部类型中的局部内部类。

上一篇文章惠州北大青鸟老师给大家讲了Java内部类型中的成员内部类,下面我们一起来学习Java内部类型中的局部内部类。

一个局部内部类在块中声明。其范围仅限于声明它的块。

由于其范围限于其封闭块,因此其声明不能使用任何访问修饰符,例如public,private或protected。

通常,在方法内定义局部内部类。但是,它也可以在静态初始化器,非静态初始化器和构造器中定义。

下面的代码显示了一个局部内部类的例子。

import java.util.ArrayList;import java.util.Iterator;public class Main {  public static void main(String[] args) {
   StringList tl = new StringList();
   tl.addTitle("A");
   tl.addTitle("B");

   Iterator iterator = tl.titleIterator();    while (iterator.hasNext()) {
     System.out.println(iterator.next());
   }
 }
}class StringList {  private ArrayList<String> titleList = new ArrayList<>();  public void addTitle(String title) {
   titleList.add(title);
 }  public void removeTitle(String title) {
   titleList.remove(title);
 }  public Iterator<String> titleIterator() {    // A local inner class - TitleIterator    class TitleIterator implements Iterator<String> {      int count = 0;
     @Override      public boolean hasNext() {        return (count < titleList.size());
     }

     @Override      public String next() {        return titleList.get(count++);
     }
   }

   TitleIterator titleIterator = new TitleIterator();    return titleIterator;
 }
}

上面的代码生成以下结果。

A

B

例子

下面的代码有一个局部内部类继承自另一个公共类。

import java.util.Random;abstract class IntGenerator {  public abstract int getValue() ;
}class LocalGen {  public IntGenerator getRandomInteger() {    class RandomIntegerLocal extends IntGenerator {
     @Override      public int getValue() {
       Random rand = new Random();        long n1 = rand.nextInt();        long n2 = rand.nextInt();        int value = (int) ((n1 + n2) / 2);        return value;
     }
   }    return new RandomIntegerLocal();
 } // End of getRandomInteger() method}public class Main {  public static void main(String[] args) {
   LocalGen local = new LocalGen();
   IntGenerator rLocal = local.getRandomInteger();
   System.out.println(rLocal.getValue());
   System.out.println(rLocal.getValue());
 }
}

上面的代码生成以下结果。

230737431

162568032

通过老师的讲解,你知道局部内部类了吗?想了解更多关于Java的知识,联系在线客服,或者来惠州北大青鸟新方舟校区了解一下。

java6.png

Java

标签:惠州计算机JAVA软件开发惠州计算机Java软件开发惠州计算机JAVA培训惠州计算机JAVA软件开发学校惠州计算机Java软件开发培训JAVAJava软件开发北大青鸟IT计算机学校北大青鸟IT软件学校北大青鸟IT学校


Java技术排行
标签列表
网站分类
文章归档
最近发表