Java基础(静态static)

为什么有静态static?

由于在一些场合中一个类的多个实例要共享一个成员变量;有时候要定义 “常量”,但是java中没有提供常量;

 

 

有时候想定义一些不和具体对象相关联的方法,不需要每次都去new对象再去使用方法的时候,可以使用静态方法来定义。

案列1.通过类名.方法名去使用类中方法,不需要new一个新的对象。

  • 主程序

 

public class main {
//如果没有static静态方法 则必须要new这个对象才行

public static void main(String []args)
{
	int []a=new int[5];//
	a[0]=1;
	a[1]=2;
	a[2]=3;
	int b;
   b=calc.sum(a);
   System.out.println("总和为"+b);
}
}

 

  • 静态方法
public class calc {

public static int sum(int []a)
{
    int s=0;
    System.out.println("数组长度为"+a.length);
    //注意数组是从0开始,也就是只需要遍历到4就可以了
	for(int i=0;i<a.length-1;i++)
	{
		s=s+i;
		System.out.println(s);
	}
    return s;
}


}

       通过上述的方法可以直观的感受到static带来的便利。

            接下来我将static删除

        

       

 

 程序报错,所以必须使用静态类来标注这个方法才行

 

2.static变量是和共享的同一个内存空间,而非static的方法则是根据对象来隔离

 

 

 

3.static方法无法使用this这个关键字,这个是因为static就是一个类,不属于任何对象,所以this就不能表示任何对象了。

4.最后就是静态类的成员无法访问到非静态的成员,然而非静态类的成员可以访问静态类的成员

案列

 

 这里有一个封装好的person,里面提供了非静态的方法getage,无法通过静态类cacl来进行调用访问。

 

 5.静态类的代码块儿那些事儿

 

 静态类的代码块在类的初始化的时候就被执行,但是只执行一次

 静态代码块儿的执行顺序

 

         父类–静态代码块

 

         子类–静态代码块

 

         父类–非静态代码块

 

         父类–构造函数

 

         子类–非静态代码块

 

         子类–构造函数

 

转载于:https://www.cnblogs.com/a986771570/p/8037213.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值