static关键字的使用

     在初学java时,是通过马士兵老师的J2SE视频入门的,老师从java环境的配置,编译和运行,一步步的引领我们走向java的世界。随着课程的深入,发现还是有一些与之前学习相类似的内容,当时没有总结的,现在拿出小demo来弥补一下。本篇博文主要复习一下static关键字的使用。

   先上例子:

public class Cat{
	private int sid=0;
	private String name;
	int id;
	Cat(String name){
		this.name =name;
		id=sid++;
	}
	public void info(){
		System.out.println("My name is " + name + " No." + id);
	}
	public static void main(String arg[]){		
		Cat.sid=100;
		Cat mimi =new Cat("mimi");
		Cat pipi=new Cat("pipi");
		mimi.info();
		pipi.info();
	}	
}
             例子中没有使用static关键字,在运行时,Cat.sid=100;会报错,显示错误信息为Cannot make a static reference to the non-static field Cat.sid。

   这是因为在主方法中使用了static关键字来声明,该方法就是静态方法,在调用时,不再针对某个对象调用,也就不会将对象的引用传递给它,所以在static方法中不可访问非static的成员变量。

   例子中sid专属于某个对象的,只有实例化出某个对象后,该对象才会具有sid,若不实例化,则这个对象就不存在,该sid就不能使用。于是就可引出static关键,修改如下。

public class Cat{
	private static int sid=0;
	private String name;
	int id;
	Cat(String name){
		this.name =name;
		id=sid++;
	}
	public void info(){
		System.out.println("My name is " + name + " No." + id);
	}
	public static void main(String arg[]){		
		Cat.sid=100;
		Cat mimi =new Cat("mimi");
		Cat pipi=new Cat("pipi");
		mimi.info();
		pipi.info();
	}	
}

             在类中,只需将sid用static声明为静态成员变量,它为该类的公有变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量只有一份。静态方法不会针对某个对象,没有对象照样可以调用。(类.方法名即Cat.静态方法名,不用写对象的名字,)也正因此,在static方法中不能访问非静态(非static)成员,上述例子的运行结果为:

              My name is mimi No.100

              My name is pipi No.101



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值