static修饰成员变量

/*
static(静态): 修饰符

	static修饰成员变量: 如果一个数据需要被所有对象共享使用的时候,那么即可使用static修饰该成员变量。
		
		访问方式:
				方式1: 可以使用对象进行访问。  格式:对象.静态属性名

				方式2: 可以使用类名进行访问。  格式: 类名.属性名。
		
		推荐使用:可以使用类名进行访问。
		

	静态成员变量要注意的细节:
		1. 静态的成员变量可以使用类名或者是对象进行访问。
		2. 非静态的成员变量只能使用对象进行 访问,不能使用类名直接访问。
		3. 千万不要为了方便访问而使用static修饰一个成员变量,只有这个成员变量的数据是需要被共享的时候
			才使用static修饰。

	static修饰成员函数:
		
		静态函数的访问方式:
			
			  方式一:使用对象访问。  格式: 对象.函数名()

			  方式二:使用类名访问。 格式: 类名.函数名();

		
		静态函数要注意的细节:
			1. 非静态的函数只能使用对象调用,不能使用类名调用。
			2. 静态函数可以直接访问静态的成员,但是不能直接访问非静态的成员。
				原因:静态函数可以使用类名调用,而这时候对象可能还没有存在内存中,这时候非静态的数据也就不存在内存中。

			3. 非静态函数可以直接访问静态以及非静态的成员。
				原因:非静态函数必须要由对象调用,如果对象存在了,静态数据以及非静态数据早就存在内存中了。 

			4. 静态函数不能出现this以及super关键字。
				原因:因为静态函数可以使用类名直接调用,而这时候可能还没有对象存在,this又要代表当前对象。

	
	什么时候使用static修饰一个函数呢?
		如果一个函数没有直接访问非静态的成员,那么即可使用static修饰该函数了。(常用于工具类的方法 Arrays)


	非静态的成员变量与静态成员变量的区别:
	
		数量上的区别:	
			(n份)非静态成员变量是在每个对象中都维护一份数据
			(1份)静态成员变量只会在方法中维护一份数据。

		访问方式上的区别:
			非静态的成员变量只能使用对象进行访问. 
			静态成员变量可以使用对象、类名进行访问。
		
		存储位置上的区别;
			非静态成员变量是存储在堆内存中。
			静态成员变量是存储在方法区中。
			
		生命周期的区别:
			非静态成员变量是随着对象的创建而存在,随着对象的消失而消失。
			静态成员变量是随着类文件的加载而存在,随着类文件(字节码文件)的消失而消失。

		作用上的区别:
			非静态成员变量的作用是用于描述一类事物的属性。
			静态成员变量的作用是提供一个共享数据给所有对象使用的。 






*/


class Student{
	
	 String name ; // 非静态的成员变量

	static	String country = "中国";  //静态的成员变量
	
	//静态代码块
	static{
		System.out.println("静态代码块的代码执行了..");
	}

	public Student(String name){
		this.name = name;
	}
	
	//静态函数  
	public static void sleep(){
		System.out.println( "今晚早睡..");
		
	}

	
	//非静态函数
	public void study(){
		System.out.println(name+"好好学习,为将来可以成为高富帅做准备!!");
	}

}

class Demo10 
{
	public static void main(String[] args) 
	{
			
		Student s1 = new Student("狗娃");
		Student s2 = new Student("铁蛋");
		System.out.println("姓名:"+ s1.name);
		System.out.println("姓名:"+ s2.name);
		/*
		System.out.println("国籍:"+ Student.country);
		*/
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值