java为什么要用内部类 有例子吗 ?写方法做不到吗
1个回答
展开全部
写内部类只是为了方便而已,比如有时候一个类里面需要使用定义多个类,并且这些类之间需要
共享一些数据,这时候使用内部类就简便一点。比如:
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就表示字符串资源的地址。
其实只是为了方便管理,看起来顺眼一点而已。除此之外,没什么大用。但是用的还挺多。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询