飘~涅咯~内部类是咋米回事,有虾米优缺点么 地主婆家滴小白问题2.有的程序里用了好多,转晕晕勒@_@ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 内部类,顾名思义就是处在类中的类。内部类的嵌套可以理解成类的链关系,在构造一个内部类(非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(){ // 可以在这里写点击按钮所执行的操作} 总结之:1.Inner类可以定义在方法的内部。方法中final类型的局部变量,都可以被Inner类的方法访问。2.Inner class可以声明为抽象类 ,因此可以被其它的内部类继承。也可以声明为final的。3.和外层类不同,Inner class可以声明为private或protected;4.Inner class 可以声明为static的,但此时就不能再使用外层封装类的非static的成员变量; 非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员 总结之: 1.Inner类可以定义在方法的内部。方法中final类型的局部变量,都可以被Inner类的方法访问。 2.Inner class可以声明为抽象类 ,因此可以被其它的内部类继承。也可以声明为final的。 3.和外层类不同,Inner class可以声明为private或protected; 4.Inner class 可以声明为static的,但此时就不能再使用外层封装类的非static的成员变量; 非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员 就是你改的那些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()); } });其他地方我也不懂有什么方便的 首先感谢回答偶问题的大大们~偶是小白,让大家费心了咯然后涅,生活不可以缺乏色彩,如果连说法滴方式也限制,是不是等于干涉偶滴human rights 外加 freedom涅技术性的bbs就一定要一个字一个字的一本正经麽看的懂就好啦,管偶做虾米啊555555555555o(>_<)o 这也算logic麽,写个程序证明下好啦,如何把偶排除在技术之外^^many thx 内部类(Inner Class)分为(1):Atatic inner class静态内部类(2)Member inner class成员内部类(3)Local inner class局部内部类(4)Anonymous inner class匿名内部类每种内部类,中调外部类的属性和方法,其他类调这个内部类中的属性和方法,都有很多不同的,当然还有很多相同的,楼主还是自己网上搜一下,我就不总结了,比较繁琐。 新手死锁问题 一个关于java的小问题请教各位大师 急!HtmlParser提取文本的问题,求教 类之间的6种关系如何理解? java读取文件遇到的一个问题 一个关于文本域的问题 请教:JAVA查询MYSQL的问题 谁能帮我修改一下程序,多谢! 兄弟姐妹们,帮帮忙吧 员工张三有两个主管,主管A和主管B经常会根据张三的业绩给张三调工资,用同步线程的方法! 跪求大佬帮帮忙 计算各个线程时间 理解Java的跨平台性,欢迎拍砖
JButton btnInput = new JButton();
btnInput.setText("输入");
btnInput.addActionListener(inputButtonAction);// 这里的 inputButtonAction 就是一个内部类 Action 的实例
Action inputButtonAction = new AbstractAction()
{
public void actionPerformed(ActionEvent e)
{
// 这里内部类可以使用外层类的方法
someFunction();
}
};private void someFunction()
{
// 可以在这里写点击按钮所执行的操作
}
1.Inner类可以定义在方法的内部。方法中final类型的局部变量,都可以被Inner类的方法访问。
2.Inner class可以声明为抽象类 ,因此可以被其它的内部类继承。也可以声明为final的。
3.和外层类不同,Inner class可以声明为private或protected;
4.Inner class 可以声明为static的,但此时就不能再使用外层封装类的非static的成员变量;
非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员
1.Inner类可以定义在方法的内部。方法中final类型的局部变量,都可以被Inner类的方法访问。
2.Inner class可以声明为抽象类 ,因此可以被其它的内部类继承。也可以声明为final的。
3.和外层类不同,Inner class可以声明为private或protected;
4.Inner class 可以声明为static的,但此时就不能再使用外层封装类的非static的成员变量;
非static的内部类中的成员不能声明为static的,只有在顶层类或static的内部类中才可声明static成员
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());
}
});
其他地方我也不懂有什么方便的
分为(1):Atatic inner class静态内部类
(2)Member inner class成员内部类
(3)Local inner class局部内部类
(4)Anonymous inner class匿名内部类
每种内部类,中调外部类的属性和方法,其他类调这个内部类中的属性和方法,都有很多不同的,当然还有很多相同的,
楼主还是自己网上搜一下,我就不总结了,比较繁琐。