java 基础之成员变量,成员方法和局部变量,实例方法

以下都是总结的简单说法,定义上可能没那么严谨。

成员变量:类里定义的变量。

局部变量:方法里定义的变量。

其中成员变量又分为:实例变量和类变量(静态变量)

类变量:static修饰的变量

注:如果局部变量和成员变量的名称相同,那么成员变量被隐藏,即方法内失效,方法中如需要访问该类中的成员变量,则需要加上关键字 this。

        实例方法既能操作成员变量也能操作类变量,而类方法只能操作类变量。

        实例方法能调用实例方法和类方法,类方法只能调用类方法。

只要记住,static修饰的只能操作static修饰的,而无static修饰的都能操作。

简单的例子:

public class Man
{
	static String head;
	public void func()
	{
		head="大头";
	}

	public static void main(String[] args) 
	{
		Man man1=new Man();
		Man man2=new Man();
		man1.func();
		System.out.println(man2.head);
	}
}

以上的类编译执行后的结果是  ”大头“

public class Man
{
    String head;
	public void func()
	{
		head="大头";
	}

	public static void main(String[] args) 
	{
		Man man1=new Man();
		Man man2=new Man();
		man1.func();
		System.out.println(man2.head);
	}
}


以上代码编译执行后则输出的结果是null

这也就是说,静态变量属于类,而不属于对象。
new 对象的时候,对象将被分配不同的内存空间,准确的说,不同的对象分配不同的内存空间,而如果类中含有类变量,则所有对象的类变量都被分配给相同的一处内存空间,改变其中一个对象的这个类变量都会影响其他对象的这个类变量,也就是说,对象共享类变量。

当java执行程序时,类的字节码文件被加载到内存,如果该类没有创建对象,类的实例变量不会分配内存,但是类中的类变量,在该类加载到内存时,就分配了相应的内存空间。如果该类创建对象,不同的对象的实例变量互不相同,即分配不同的内存空间,而类变量不再重新分配内存,类变量的内存空间直到程序退出时,才释放内存。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值