JAVA 静态属性、方法、代码块 day8

1、静态方法(static修饰)和非静态方法

1.1、静态方法:通过类名直接调用,即可不需要创建对象。(类名.方法名)

1.2、非静态方法:通过对象调用,即必须创建对象。(对象名.方法名)

1.3、何时使用静态方法:当方法中无需访问成员变量时,该方法就可以设计为静态方法


2、static 修饰成员变量

 在一个Java类中,可以使用 static 关键字来修饰成员变量,该变量被称作静态变量. 静态变量被所有实例共享,可以使用 "类名.变量名" 的形式来赋值.


3、静态属性和非静态属性:

3.1、静态属性:内存中只有一份,能够被该类的所有实例对象所共享。

eg:在主函数中为静态成员变量schoolName赋值:Student.schoolName="某某大学";

        在Student类中定义一个静态成员变量:public static String schoolName;

3.2、对象在堆区开辟空间时,每个对象都会为自己开辟非静态属性空间


4、

静态代码块作用:

·       4.1. 使用static关键字修饰的代码块就称为静态代码块.当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块只执行一次.在程序中,通常会使用静态代码块来对类的静态成员变量进行初始化.

·        4.2. 做一些程序启动之前的准备工作,并且该工作只需要在程序启动时仅执行一次即可.

静态代码块特点:

自动执行,只在类加载时仅执行一次

静态代码块的执行顺序 :

当类加载的时候:

1.Java虚拟机会先加载类中的所有静态 `变量`.

2.当把所有的静态成员变量加载完成之后,开始给类中的所有 `静态` 变量进行 `默认初始化`.

3.当类中的所有静态变量默认初始化完之后,接着开始给所有静态变量进行 `显示的赋值` 操作。

4.只有类中所有的静态成员变量显示赋值结束之后,静态代码块才会运行。


5、

构造代码块特点:

无论外部使用什么构造方法创建的对象,构造代码会都会被调用,创建了多少个对象,构造代码块就会被调用多少次.

作用 :

统计程序中创建该类对象的个数.

抽取构造代码块中相同的代码.

6、代码执行顺序:静态代码块》构造代码块》代码块》构造方法


7、单例设计模式

7.1、单例模式是Java中的一种设计模式,它是指在设计一个类时,需要保证在整个程序运行期间针对该类只存在一个实例对象.作用:限制对象的创建.

7.2、特点:

1. 类中的构造方法使用 private 关键字修饰,声明为私有.这样就不能在类的外部使用 new 关键字来创建实例对象了.

2.   在类的内部创建一个该类的实例对象,并使用静态变量 INSTANCE 引用该对象,由于变量应该禁止外界直接访问,因此使用 private 修饰.声明为私有成员.

(或者在本类中创建一个对象,使用public修饰,并静态该变量,并需要用final关键字最INSTANCE变量进行最终化,表示该变量不能够被再次修改)

3.   为了让类的外部能够获取类的实例对象,需要定义个静态方法 getInstance (); 用于返回该类实例 INSTANCE, 由于方法是静态的.外界可以通过 "类名.方法名();"的方法来访问. -> Single.getInstance();

7.3、懒汉式和饿汉式单例设计模式:

饿汉式:类加载的时候,对象就被创建 eg:private static Single INSTANCE=new Single();

懒汉式:在类加载的时候,不会在堆区中创建单例对象. eg: private static Single INSTANCE=null;










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值