java为什么要用内部类 有例子吗 ?写方法做不到吗

 我来答
我只会点亮LED
2017-11-07 · TA获得超过152个赞
知道答主
回答量:62
采纳率:100%
帮助的人:39.2万
展开全部
写内部类只是为了方便而已,比如有时候一个类里面需要使用定义多个类,并且这些类之间需要
共享一些数据,这时候使用内部类就简便一点。比如:

public class TestUI{
 
 private static BufferedImage img;
  public static main(){
        TestUI  t = new TestUI();
        new ImagePanel();
        new ReadDataThread().start();
  }
  public class ImagePanel extends JPanel{
    
    public ImagePanel(){
      JFrame jf = new JFrame();
      jf.setxxxx
      //初始化界面。
    }
    
    public void paint(Graphics g){ 
            //这里是重绘逻辑
            if( img !=null){
               g.drawImagexxxx 
            }
            
     }
  }
  public class ReadDataThread extends Thread{
      private ImagePanel panel;
      
      public ReadDataThread(  ImagePanel panel){
         this.panel = panel;
      }
      public void run(){
         //假设这里通过网络来获取img。
         img=xxxxx;
         panel.repaint();
      }
  }

}
这没闹是有名字的内部类。
没有名字的内部类也就是匿名内部类,也很常用。比如线程类。有时候为了偷懒或者快速测试。
public static void main(){
 
    new Thread(
       new Runnable(){
       
 渗拿        @Override
  丛察搭       public void run(){
            ///测试代码
         }
       }
    ).start();
}

还有的是静态内部类,比如在安卓开发的工程中。R文件表示资源文件。其内部结构就是一个R类
里面包含了很多静态内部类。大概长这样。
public final class R {
    
    public static final class drawable {
        public static final int icon=0x7f020001;
    }
    public static final class layout {
        public static final int main=0x7f020002;
    }
    public static final class string {
        public static final int app_name=0x7f020003;
        public static final int hello=0x7f020004;
    }
}
这样外部就可以一层一层的访问进去
R.drawable.xxx就表示图片资源地址。
R.layout.xxx就表示布局文件的地址。
R.string.xxx就表示字符串资源的地址。
其实只是为了方便管理,看起来顺眼一点而已。除此之外,没什么大用。但是用的还挺多。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式