20200517 private封装 static静态 单例模式

2020/05/17 private封装 static静态 单例模式

对象可以作为一个参数传入方法

实际传递进去的为地址值,直接在方法中调用参数对象地址

对象可以作为返回类型传入方法

同理,返回的是对象地址

成员变量和局部变量

成员变量为类变量

整个类通用,如果没赋值会有默认值,在堆内存中

局部变量为方法

只能在方法中使用,没有默认值,想要使用必须手动赋值,位于栈内存

成员访问修饰符
封装private

使用private进行修饰,本类中可以随便访问,超出本类范围不能直接访问

对于基本类型进行访问用get。。()和set。。(),对于Boolean得用is。。()

自身同包子类不同包子类同包类其他类
private可访问不能继承不能继承不可访问不可访问

package/friendly/default 不写

和无修饰符一样

自身同包子类不同包子类同包类其他类
private可访问可继承不能继承可访问不可访问

protected受保护的

自身同包子类不同包子类同包类其他类
private可访问可继承可继承可访问不可访问

public公共的

自身同包子类不同包子类同包类其他类
private可访问可继承可继承可访问可访问

总结:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yxEn20VB-1589723314124)(C:\Users\10145\AppData\Roaming\Typora\typora-user-images\image-20200517181147181.png)]

1.属性通常用private封装

2.方法一般用public被调用

3.会被子类继承的方法用protected

4.package用的不多

类属性

一个属性被static修饰,叫做类属性,又叫静态属性,实质上为全局变量

属性被声明为类变量,所有对象都共享一个值

成员变量属于对象,存放在堆中

静态变量属于类,存放在方法区

什么时候使用?

成员变量数据是否所有对象都一样,是则静态修饰

类方法

访问一个对象方法,必须建立在有一个对象的前提的基础上
访问类方法,不需要对象的存在,直接就访问

调用:类.类方法

​ 无static:对象.方法

在一个方法得依靠对象才有意义,那就是对象方法,如果方法不调用任何对象属性,则设计为类方法

属性初始化

对象属性初始化

  1. 声明该属性的时候初始化

    public String name = "some hero";

  2. 构造方法中初始化

    public Hero()
    
    	{
            hp = 100; //构造方法中初始化
    	}         
    
  3. 初始化块

类属性初始化
  1. 声明该属性的时候初始化

    public static int itemCapacity=8; //声明的时候 初始化

  2. 静态初始化块

属性初始化顺序

声明初始化第一,块第二,构造方法第三

一个标准类

1.成员变量都使用private

2.为每个成员变量编写一对Setter/Getter方法

3.编写一个无参数构造方法//通过generate来生成

4.编写一个全参数构造方法

单例模式

指的是一个类,在一个JVM里,只有一个实例存在。

三元素

将构造方法设置为private属性

静态属性指向实例

public static的 getInstance方法,返回第二步的静态属性

饿汉式单例

关键:1.私有构造函数 2.静态私有成员,类加载时初始化 3.公开访问点

无论如何都会创建一个实例,先创建对象,再在调用时直接返回对象实例

在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快

懒汉式单例

关键:1.构造函数定义为私有 2.成员变量为static,没有初始化

只要调用创建对象方法时,才会创建实例

类加载时不初始化

在加载时,如果有充分的启动和初始化时间就可以使用饿汉模式,否则用懒汉

在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快

懒汉式单例

关键:1.构造函数定义为私有 2.成员变量为static,没有初始化

只要调用创建对象方法时,才会创建实例

类加载时不初始化

在加载时,如果有充分的启动和初始化时间就可以使用饿汉模式,否则用懒汉

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值