Java的静态方法和非静态方法

Java的静态方法和非静态方法

Java静态对象和非静态对象有什么区别?? 

静态对象                                                        非静态对象      
是类共同拥有的.                                          是类独立拥有的, 
内存空间上是固定的                                              空间在各个附属类里面分配 
先分配静态对象的空间                                            继而再对非静态对象分配空间,也就是初始化顺序是先静态再非静态. 


java静态对象和静态属性及静态方法又有什么区别呢? 
这三者都和一般的对象属性和方法相似,可以将静态对象看成的静态属性.只不过楼主要注意的是在非静态方法里是不可以使用静态属性的.静态方法里也无法使用非静态属性(是属性不是参数.参数一般是指在方法里临时新建的数值或对象,属性是类声明部分声明的信息). 


为什么先声明一个静态对象 static Lefthand left;还要在主函数中再实例化该对象呢left=new Lefthand();? 
因为任何对象在使用之前都要进行初始化,new就是进行对象的分配空间后进行初始化. 


java静态对象到底有什么好处?? 
我个人的理解就是静态对象可以让相同类型的类之间共享共同的属性,这个共享是同步的,而且不用new,节省了空间


1、静态对象的数据在全局是唯一的,一改都改。如果你想要处理的东西是整个程序中唯一的,弄成静态是个好方法。 
2、非静态的东西你修改以后只是修改了他自己的数据,但是不会影响其他同类对象的数据。 
3、静态对象和非静态对象都是对象,是对象都是要实例化的。不同之处就是2者的数据表现和存储方式不一样。 
4、静态的好处: 
引用方便。对于公用类型的变量,直接用 类名.静态方法名  或者  类名.静态变量名就可引用并且直接可以修改其属性值,不用getter和setter方法。 
保持数据的唯一性。此数据全局都是唯一的,修改他的任何一处地方,在程序所有使用到的地方都将会体现到这些数据的修改。 
有效减少多余的浪费。

静态的方法就是不需要将类实例化就可以直接使用类名调用到方法或者属性。
而非静态的就需要将此类实例化之后才能够调用到方法或者属性。  
public class Test {  
static String staticstr = "静态的变量";  
String str = "非静态的变量";  
public static void test1(){
System.out.println("静态方法");  
}  

public void test2(){   
System.out.println("非静态的方法");  
}
}

class Run{  
public static void main(String[] args) {
Test.test1();//无需实例化就可以调用到方法   
System.out.println(Test.staticstr);   
Test test = new Test();   
test.test2();//需要实例化之后才能够调用的得到   
System.out.println(test.str);  
}
}  

静态的方法一般的可以直接调用:
class  A{  
public static String ss(){
return "bbbb";
}
}

class B{  
public String aa(){
return A.ss();
}
}
而非静态的方法需要new 一个对象:
class A{
public String ss(){
return "bbbb";
}
}

class B{
public String aa(){
A a=new A();  
return a.ss();
}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值