供整个类使用的方法就可以写static,比如Object类的equals()方法
如果是某个对象的方法,则不具备写static的条件,因为它的一些方法不能被其他对象使用
如果是某个对象的方法,则不具备写static的条件,因为它的一些方法不能被其他对象使用
解决方案 »
- 有关控制台输入,求大神指教
- 输出 能被3整除 但各位数是6的 100 以内的数 && 求1000以内的水仙花数
- jdom解析xml文件的工具类
- JAVA交流群,欢迎大家加入,及时讨论、沟通问题,共同提高、进步!
- 请教怎样在canvas上面画图啊?我怎么画出来的一闪而过
- 在java.sun.com里,那有介绍API的详细文挡,带有介绍API的例子。
- 判断这条线是否被鼠标点击,急!
- .jar 双击后不能运行也没有任何反应
- 现在JAVA主要用来干什么?(内同)
- 百思不解,JBuider是怎样了?
- 应当简单吧?这些包在哪个文件夹下?
- SimpleTimeZone.getDefault().inDaylightTime(Date d)的参数是何意思
在保证线程安全的前提下,都可以用static方法
如果类的某个成员方法没有保存状态信息的意义,那么这个方法就应该被设计成静态方法,可以直接使用类来调用,因为创建对象是为了保存状态,不保存状态信息就不因为创建对象,创建对象所付出的代价是黯贵的(ABC打不出来.........)
通常这样的工具方法都是跟输入没有关系的,也就是说它们不对输入项进行操作而是根据输入项得到一些值.例如
我们在编写一个棋类游戏,每次我们从网络中得到的都是棋子的ID而并非名称,但是在更新棋盘的同时我们要生成棋谱,例如"3四兵",而我们需要一个能根据棋子ID得到棋子名称的方法,而这个方法又可能在多个类(不仅是通一个类的多个实)使用,那么就需要编写一个这样的工具,因此我们在ClientUtil类中加入如下方法
publci class ClientUtil{
public static String getChessmanName(byte _chessmanId){
String cName= "";
switch(_chessmanId){
case 1:
cName = "兵";
break;
case 2:
cName = "卒";
break;
......
}
}
}
在GamePanel中我们就需要使用该方法
public class GamePanel{
public void move(){
......
updateChessManual();
}
private void updateChessManual(){
.......
String cName = Client.getChessmanName();
.......
}
}
如果是属性static 的时候我们多用于和final组合作一些常量使用.
以上使我们使用static的习惯,不能代表static的全部.
例如:
class staticed
{
static staticed st = new staticed();
public static staticed get()
{
return st;
}
private staticed()
{
//...
}
}
class goin
{
public static void main(String [] args)
{
staticed obj = staticed.get();
}
}
请大家顺便去 http://community.csdn.net/Expert/topic/3763/3763214.xml?temp=.9655725
谢谢