static静态变量,静态方法,特别是 静态类是什么意思呀,我晕??????? static静态变量是只有一个副本,一改全改静态方法不需要初始化直接可以调用静态类就是.....自己看书去 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 静态变量指的是类数据,即类不需要实例化就可以通过类名访问的数据。静态方法指类方法,即即类不需要实例化就可以通过类名调用的方法,因此在静态方法中只能调用静态变量。而静态类中的static的含义和上面两个static不同,因为静态类是关于inner class的。我们知道一个Java类文件中只能有一个public类的定义。这个public类叫做top level类。top level是不能为static.在top level中可以包含inner class,inner class有四种类型,如下:1、Anonymous,是指在一条语句中申明并实例的,没有名称,其他地方也不能使用它,如:okButton.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ dispose(); }});2、Local,是指和local变量一个层次定义的类,这个类在作用域中可以多次使用,如://some code block .......{ class ListListener implements ItemListener { List list; public ListListener(List l) { list = l; } public void itemStateChanged(ItemEvent e) { String s = l.getItemSelected(); doSomething(s); } } List list1 = new List(); list list2 = new List(); list1.addItemListener(new ListListener(list1)); list2.addItemListener(new ListListener(list2));}3、Member, 是定义在类中的类,这种当其没有用static修饰时,只能在类中使用。当其用static修饰时,便属于下一种情况。4、Nested top-level,这种类不仅可以在父类中使用,而且可以在外部使用,如:public class Filter { Vector criteria = new Vector(); public addCriterion(Criterion c) { criteria.addElement(c); } public boolean isTrue(Record rec) { for(Enumeration e=criteria.elements(); e.hasMoreElements();) { if(! ((Criterion)e.nextElement()).isTrue(rec)) return false; } return true; } public static class Criterion { String colName, colValue; public Criterion(Stirng name, String val) { colName = name; colValue = val; } public boolean isTrue(Record rec) { String data = rec.getData(colName); if(data.equals(colValue)) return true; return false; } }}我们可以这样使用它:Filter f = new Filter();f.addCriterion(new Filter.Criterion("SYMBOL", "SUNW"));f.addCriterion(new Filter.Criterion("SIDE", "BUY"));.....if(f.isTrue(someRec)) //do some thing .....由此可以看出,静态类只能申明在member inner class类中,而且含义和普通的static是不一样的。 具体参见:http://www.javaworld.com/javaworld/javaqa/1999-08/01-qa-static2.html 小白求解答swing中JTextArea的滚动条不出现是怎么回事?随便求一个网址的正则。 菜鸟求解 swing的一个问题 JInternalFrame的关闭 Java2编程详解目前到第几版了? jcombobox 谁做过用javamail查看收件箱的程序? Java Class Loading的背景和意义 java中如何垂直显示内容 如何使JTree不显示根节点 ,而显示根下面的叶 Map m=new HashMap()为什么要这么写? 接口有什么具体的用途?
静态方法指类方法,即即类不需要实例化就可以通过类名调用的方法,因此在静态方法中只能调用
静态变量。
而静态类中的static的含义和上面两个static不同,因为静态类是关于inner class的。
我们知道一个Java类文件中只能有一个public类的定义。这个public类叫做top level类。
top level是不能为static.在top level中可以包含inner class,inner class有四种类型,如下:
1、Anonymous,是指在一条语句中申明并实例的,没有名称,其他地方也不能使用它,如:
okButton.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){
dispose();
}
});
2、Local,是指和local变量一个层次定义的类,这个类在作用域中可以多次使用,如://some code block .......{
class ListListener implements ItemListener {
List list;
public ListListener(List l) {
list = l;
} public void itemStateChanged(ItemEvent e) {
String s = l.getItemSelected();
doSomething(s);
}
}
List list1 = new List();
list list2 = new List();
list1.addItemListener(new ListListener(list1));
list2.addItemListener(new ListListener(list2));
}
3、Member, 是定义在类中的类,这种当其没有用static修饰时,只能在类中使用。当其用static修饰时,便属于下一种情况。
4、Nested top-level,这种类不仅可以在父类中使用,而且可以在外部使用,如:
public class Filter {
Vector criteria = new Vector();
public addCriterion(Criterion c) {
criteria.addElement(c);
}
public boolean isTrue(Record rec) {
for(Enumeration e=criteria.elements();
e.hasMoreElements();) {
if(! ((Criterion)e.nextElement()).isTrue(rec))
return false;
}
return true;
} public static class Criterion {
String colName, colValue;
public Criterion(Stirng name, String val) {
colName = name; colValue = val;
}
public boolean isTrue(Record rec) {
String data = rec.getData(colName);
if(data.equals(colValue)) return true;
return false;
}
}
}
我们可以这样使用它:Filter f = new Filter();
f.addCriterion(new Filter.Criterion("SYMBOL", "SUNW"));
f.addCriterion(new Filter.Criterion("SIDE", "BUY"));
.....
if(f.isTrue(someRec)) //do some thing .....由此可以看出,静态类只能申明在member inner class类中,而且含义和普通的static是不一样的。
http://www.javaworld.com/javaworld/javaqa/1999-08/01-qa-static2.html