JAVA_learning 25

单例设计模式

  1. 所谓类的单例设计模式,就是采用一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例

  2. 实现步骤:
    1. 在一个类中私有化构造器
    2. 直接在类的内部创建类的对象,要求此对象也必须是静态的
    3. 提供公共的静态方法,返回类的对象

    public class Singleton {
    	public static void main(String args[]) {
    		Bank bank1=Bank.getInstance();
    		Bank bank2=Bank.getInstance();
    		System.out.println(bank1==bank2);//true
    	}
    }
    class Bank{
    	//单例模式的**饿汉式**和懒汉式
    	//1.私有化构造器——避免外部造对象
    	private Bank() {
    
    	}
    	//2.内部创建类的对象——外部类不能造对象,
    	//但是我们还得有对象来调用,那么就在类的内部造一个对象
    	private static Bank instance=new Bank();
    
    	//3.提供公共的方法,返回类的对象——虽然造了一个对象
    	//但是它是私有的(如果是public外部也能调用了),
    	//因此我们得提供公共的方法返回我们的对象
    
    	//4.虽然提供了公共的方法,但是,还是需要对象才能调用
    	//而根据1,2,3,我们最终陷入死循环,于是,只好将
    	//方法设置为静态,而静态方法中只能调用静态结构,因此
    	//我们还得将对象设置为静态的
    	public static Bank getInstance() {
    	return instance;
    	}
    }
    

应用场景

  1. 网站的计数器
  2. windows的Task Manager(任务管理器) 和 Recycle Bin(回收站)

main()方法

类的成员四:代码块

1.代码块的形式

 {
 	System.out.println("代码块i");
	}
	//
  1. 代码块的作用:用来初始化类,对象

  2. 按是否由static修饰可分为静态代码块,与非静态代码块(若是修饰只能用static修饰)

  3. 如何调用代码块
    构造器——通过new
    方法——通过对象.

    静态代码块与静态方法有相点似,都是与类同时加载的,可以有多个,且每个都只会执行一次,内部也只能调用静态结构。但是,静态方法毕竟还是方法,只是加载,却还是要等到对象来使用,但是静态代码块不同,加载之后就会执行其中的内容
    非静态代码块则可以类比非静态方法,都是在对象创建之后加载的,且每次对象创建都会执行一次。非静态代码块在对象创建后就会执行。
    利用非静态代码块每创建一个对象就会执行一次的特点,可以在创建对象时对对象的属性进行初始化

  4. 属性可以赋值的位置:
    1. 默认初始化——private int a;
    2. 显示初始化——private int b=3;
    3. 构造器中初始化
    4. 可以用过 ”对象.属性“ 或 ”对象.方法“ 的方式进行赋值
    5. 在代码块中赋值
    执行顺序:①-②/⑤-③-④
    注意这里是属性的初始化,而不是变量的初始化(局部变量必须赋值,类的成员变量(属性)无需)

  5. 执行顺序
    main()方法,不只是程序的入口,还是一个静态方法,静态方法的调用是由类来完成的,在类调用main()方法之前,必须加载类,因此,只要main()方法开始执行,不管第一行是什么,永远都是先执行静态代码块的内容
    由父及子,静态先行:无论是静态代码块还是非静态代码块,都是先执行父类,当所有静态代码块执行完毕,再执行父类中的非静态代码块和构造方法

final关键字

  1. final可以修饰类,方法,变量

  2. final修饰类,则此类不能被继承,例如String,StringBuffer,System类

  3. final修饰方法,则此方法不能被重写,如getClass

  4. final修饰一个变量,则此”变量“就成为一个常量
    1. final修饰属性:显式初始化——简简单单一个值的时候
    代码块中赋值——必须得通过方法来获得这个值,甚至方法有可能报错时
    构造器中——每个对象的属性都不一样

    2. final修饰局部变量:尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参,一旦赋值以后,就只能在此方法中使用此形参
    
  5. static final 用来修饰属性与方法,被称为全局常量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值