java之静态属性和静态方法

Posted nianzhilian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java之静态属性和静态方法相关的知识,希望对你有一定的参考价值。

前言

静态属性和方法必须用static修饰符

static 可以修饰属性、方法、代码块、内部类

静态属性和非静态属性的区别:

1、在内存中存放位置不同   所有带static修饰符的属性或者方法都存放在内存中的方法区  而非静态属性存放在内存中的堆区

2、出现时机不同   静态属性或方法在没创建对象之前就已经存在  而非静态属性在创建对象之后才存在

3、静态属性是在某个类中的所有对象是共享的

4、生命周期不同  静态属性在类消失之后才销毁  而非晶态属性在对象销毁之后才销毁

5、用法:

  a.静态属性可以直接通过类名直接访问  非静态属性不能通过类直接访问只能通过对象访问

  b.二者的相同点是都可以在创建完对象后使用下面看个静态属性是在某个类中的所有对象是共享的例子 最后结果都是20

class Beauty
{
	int age1;
	static int age2;
}

class TestPerson
{
	
	public static void main(String[] args)
	{	

		Beauty b1 = new Beauty();
		b1.age2 = 10;

		Beauty b2 = new Beauty();
		b2.age2 = 20;
		
		System.out.println(b1.age2);
		System.out.println(b2.age2);

		System.out.print("\\n");
	}
}

 静态属性在内存中的分布图:

使用static的注意事项:

1、带有静态修饰符的方法只能访问静态属性

2、非静态方法即能访问静态属性也可以访问非静态属性

3、非静态方法不能定义静态变量

4、静态方法中不能使用this关键字

5、静态方法不能调用非静态方法反之可以

 

以上是关于java之静态属性和静态方法的主要内容,如果未能解决你的问题,请参考以下文章

5.java基础之static类加载过程

java面向对象之继承

Java:Effective java学习笔记之 静态工厂方法的简单理解和使用

java static

java中静态属性和静态方法的问题

Java 核心基础之static静态代码块和静态方法