关于java中的static

本文深入探讨了Java中的静态成员变量与静态方法的特性,包括它们的生命周期、调用方式、区别以及注意事项。同时,文章还介绍了静态使用的常见错误及解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

</pre><span style="font-size:18px;">/*static的特点:1,static是一个修饰符,用于修饰成员。2,static修饰的成员被所有的对象所共享。3,static优先于对象存在,因为static的成员随着类的加载就已经存在了。 4,static修饰的成员多了一种调用方式,就可以直接被类名所调用 。 类名.静态成员 。5,static修饰的数据是共享数据,对象中的存储的是特有数据。</span><p><span style="font-size:18px;"></span></p><p><span style="font-size:18px;">成员变量和静态变量的区别?</span></p><span style="font-size:18px;">1,两个变量的生命周期不同。<span style="white-space:pre">	</span>成员变量随着对象的创建而存在,随着对象的被回收而释放。<span style="white-space:pre">	</span>静态变量随着类的加载而存在,随着类的消失而消失。2,调用方式不同。<span style="white-space:pre">	</span>成员变量只能被对象调用。<span style="white-space:pre">	</span>静态变量可以被对象调用,还可以被类名调用。3,别名不同。<span style="white-space:pre">	</span>成员变量也称为实例变量。<span style="white-space:pre">	</span>静态变量称为类变量。 4,数据存储位置不同。<span style="white-space:pre">	</span>成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据.<span style="white-space:pre">	</span>静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据.</span><p><span style="font-size:18px;"></span></p><p><span style="font-size:18px;">静态使用的注意事项:</span></p><span style="font-size:18px;">1,静态方法只能访问静态成员。(非静态既可以访问静态,又可以访问非静态),因为非静态(成员变量、方法)是存储在对象中的2,静态方法中不可以使用this(没有定义对象)或者super关键字。3,主函数是静态的。</span><p><span style="font-size:18px;">错误:</span><span style="font-size:18px;">无法从静态上下文中引用非静态 变量xx ----因为主函数是静态的,只能调用静态成员</span></p><span style="font-size:18px;">解决方法:①将非静态成员改成静态成员  或者  ②通过new 创建一个对象调用非静态成员</span><p><span style="font-size:18px;"></span></p><p><span style="font-size:18px;">*/</span></p><pre name="code" class="html">class Person
{
	String name;//成员变量,实例变量
	static String country = "CN";//静态变量。类变量 
	public void show()
	{
		System.out.println(Person.country+":"+this.name);//非静态调用静态可以省略
	}
}


class StaticDemo 
{
	int num = 4;
	public static void main(String[] args) 
	{
		Person  p = new Person();
		p.name = "小强";
		p.show();
		System.out.println(p.country);
		System.out.println(Person.country);
		new Person().show();//通过方法②在静态方法中创建一个对象调用非静态方法
		new StaticDemo().show();
	}


	public void show()
	{
		System.out.println(num);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值