首页 > 其他 > 详细

static修饰符

时间:2021-04-01 00:09:15      阅读:22      评论:0      收藏:0      [点我收藏+]

概述

static表示“静态”的意思,可以用来修饰成员变量和成员方法,还有静态代码块 和 静态内部类。
static的主要作用在于创建独立于具体对象的域变量或者方法 简单理解: 被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。 并且不会因为对象的多次创建而在内存中建立多份数据

重点

  1. 静态成员 在类加载时加载并初始化。
  2. 无论一个类存在多少个对象 , 静态的属性, 永远在内存中只有一份( 可以理解为所有对象公用 )
  3. 在访问时: 静态不能访问非静态 , 非静态可以访问静态 !

代码块

普通代码块
在执行的流程中 出现的 代码块, 我们称其为普通代码块。
构造代码块
在类中的成员代码块, 我们称其为构造代码块, 在每次对象创建时执行, 执行在构造方法之前。
静态代码块
在类中使用static修饰的成员代码块, 我们称其为静态代码块, 在类加载时执行。 每次程序启动到关闭 ,只会 执行一次的代码块。
同步代码块
在后续多线程技术中学习。
面试题:
构造方法 与 构造代码块 以及 静态代码块的执行顺序:
静态代码块 --> 构造代码块 --> 构造方法

例子:

编写一个衣服类, 每个衣服对象创建时需要自动生成一个序号值。
要求:每个衣服的序号是不同的, 且是依次递增1的

public class ClothesTest {
	public static void main(String[] args) {
         Clothes c1=new Clothes();
         Clothes c2=new Clothes();
         Clothes c3=new Clothes();        
         System.out.println(c1.getNumber()+","+c2.getNumber()+","+c3.getNumber());
	}
}
class Clothes{
	private static int num=1; //共用的静态变量
	private int number;
	
	Clothes(){  //对象创建时调用构造方法 
		this.number=Clothes.num; //创建时赋值
		Clothes.num++;   //序号递增
    }
	
	//获取编号
	public int getNumber() {
		return number;
	}
}

控制台输出结果为:1,2,3

总结:若需要在对象创建时,就对其进行一些操作,则在无参构造方法中进行编写相关操作代码,即可。

原因:对象在创建时,就自动调用无参构造方法,并完成方法内的相关操作。

static修饰的变量或方法,为静态变量或静态方法,可由类直接调用,为所有对象共有;且被存放在方法区中。
构造方法:与类同名,无返回值。构造方法可重载。

static修饰符

原文:https://www.cnblogs.com/xingkongwu-yu/p/14604084.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!