在什么情况下用非静态?

来源:百度知道 编辑:UC知道 时间:2024/05/18 20:43:59
我是Turbo Pascal过来的,所以一直用静态
谁给个比喻或者简单例子好吗

这个问题不错,遗憾的是楼主不给分:-)
涉及到对象的考虑,Java是面向对象语言,有类的概念,类是抽象的,比如有类:
public class Car{
private String topSpeed;
public void setTopSpeed(String ts){
this.topSpeed = ts
}
}
car是抽象的,调用时必须把类实例化
Car ferrari = new Car();
ferrari.setTopSpeed("330km/hour");
Car qq = new Car();
qq.setTopSpeed("120km/hour");
好了,同样是car,但是qq和Ferrari的setTopSpeed是不同的,他们是不同的对象
接下来到讨论static,最最最典型的例子直接去看java.lang.Math类,清一色的静态,为什么呢?诸如平方根,正弦余弦有必要有对象的概念吗??没有,圆周率对于张三李四王五都是3.14,这样的话多此一举搞对象干嘛?

d=单例模式
private static ABC abc= null;
public static ABC getAbc(){
if(abc==null){
abc=new ABC();
}
return abc;
}
就这样

对哦,我为什么不把所有的方法设为静态呢,这样可以连new的工夫也剩了还是蛮方便的嘛,但要是系统有点大呢,类比较多呢,一开始就把资源给耗去划得来么,未解,我觉得确实有需要才会用静态吧,至于什么样的情况才是真正需要,请各位说说.

静态就是当你的属性和方法是属于类的情况下使用,就是不实例化对象也能用类名访问到方法或者属性,如果是属性静态,那么所有的该类的实例共享这个属性。
比如
public class Test{
static int count=0;
public static void main(Strin