地主婆家滴小白问题2.有的程序里用了好多,转晕晕勒@_@

解决方案 »

  1.   

    内部类,顾名思义就是处在类中的类。内部类的嵌套可以理解成类的链关系,在构造一个内部类(非static)的实例的时候,会将直接外层类的实例作为参数传进构造方法,而外层类的实例也是用其外层类的实例构造,所以是一种链状关系,内部的类可以使用所有外层的类的实例,方法或者变量,而外层的类不能使用内层的类。从我个人的角度说,接触内部类最多的是在 GUI 设计时,比如:
    JButton btnInput = new JButton();
    btnInput.setText("输入");
    btnInput.addActionListener(inputButtonAction);// 这里的 inputButtonAction 就是一个内部类 Action 的实例
    Action inputButtonAction = new AbstractAction()
    {
        public void actionPerformed(ActionEvent e)
        {
            // 这里内部类可以使用外层类的方法
            someFunction();
        }
    };private void someFunction()
    {
        // 可以在这里写点击按钮所执行的操作
    }
      

  2.   

    总结之:
    1.Inner类可以定义在方法的内部。方法中final类型的局部变量,都可以被Inner类的方法访问。
    2.Inner class可以声明为抽象类 ,因此可以被其它的内部类继承。也可以声明为final的。
    3.和外层类不同,Inner class可以声明为private或protected;
    4.Inner class 可以声明为static的,但此时就不能再使用外层封装类的非static的成员变量;
      非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员
      

  3.   

    总结之: 
    1.Inner类可以定义在方法的内部。方法中final类型的局部变量,都可以被Inner类的方法访问。 
    2.Inner class可以声明为抽象类 ,因此可以被其它的内部类继承。也可以声明为final的。 
    3.和外层类不同,Inner class可以声明为private或protected; 
    4.Inner class 可以声明为static的,但此时就不能再使用外层封装类的非static的成员变量; 
      非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员 
      

  4.   

    就是你改的那些swing程序里实现ActionListener接口后就要实现的actionPerformed方法里的给组件加action listener用到匿名内部类会方便些
    public class Frame1 implements ActionListener{
    ....public void actionPerformed(ActionEvent e) {

    if((e.getSource()==jb1)||(e.getSource()==jb2)){
    final JDialog jd1=new JDialog(f,"增加操作员"); 
    jd1.setLayout(new BorderLayout());
    final OperatorPane operatorPane = new OperatorPane("操作员信息");
    jd1.add(operatorPane,BorderLayout.CENTER);
    JButton jb1=new JButton("确定");
    JButton jb2=new JButton("取消");
    jb1.addMouseListener(new MouseAdapter(){//这里就是一个事件加监听的匿名内部类new 出来的MouseAdapter没有名字 @Override
    public void mouseClicked(MouseEvent e) {
    jd1.setVisible(false);
    //super.mouseClicked(e);
    //对话框上的数据添加的表格中
    Map<String, Object> values = operatorPane.getValues();
    int c = model.getColumnCount();
    List<Object> row = new ArrayList<Object>();
    for(int i=0;i<c;i++){
    String name = model.getColumnName(i);
    Object value = values.get(name);
    row.add(value);
    }
    model.addRow(row.toArray());
    }

    });
    其他地方我也不懂有什么方便的
      

  5.   

    首先感谢回答偶问题的大大们~偶是小白,让大家费心了咯然后涅,生活不可以缺乏色彩,如果连说法滴方式也限制,是不是等于干涉偶滴human rights 外加 freedom涅技术性的bbs就一定要一个字一个字的一本正经麽看的懂就好啦,管偶做虾米啊555555555555o(>_<)o
      

  6.   

    这也算logic麽,写个程序证明下好啦,如何把偶排除在技术之外^^many thx
      

  7.   

    内部类(Inner Class)
    分为(1):Atatic inner class静态内部类
    (2)Member inner class成员内部类
    (3)Local inner class局部内部类
    (4)Anonymous inner class匿名内部类
    每种内部类,中调外部类的属性和方法,其他类调这个内部类中的属性和方法,都有很多不同的,当然还有很多相同的,
    楼主还是自己网上搜一下,我就不总结了,比较繁琐。