微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

面向对象加强——static关键字、代码块、单例模式

面向对象加强——static关键字、代码块、单例模式

static静态关键字

static是静态的意思,可以修饰成员变量和成员方法

static修饰成员变量表示该成员变量只在内存中只存储(存储在方法区),可以被共享访问、修改

public static onlinnumber=161;

//静态成员变量(有static进行修饰,属于类,内存中加载一次,可以被共享访问):
//常表示如在线人数信息、等需要被共享的信息,
访问的格式:
//一般用类名.静态成员变量(推荐)
//对象.静态成员变量(不推荐)

System.out.print(onlinnumber);//同一个类中静态成员变量的访问时可以省略类名

//实例成员变量(无static进行修饰,属于对象)
访问格式:
  对象.实例成员变量
     
static 存在的不需要new对象也可以进行运用

static注意事项、

//1.静态方法只能访问静态的成员,不可以直接访问实例成员,可以间接访问

//2.实例方法可以访问静态成员,也可以访问实例成员

//3.静态方法不可以出现this关键字也不能用super//this代表的时当前对象

//4.类被加载的时候才会被创建

//5.静态方法不能直接调用非静态方法//反之可以 非静态方法可以调用静态方法


static工具类

  • 工具类定义时的其他要求:

    由于工具里面都是静态方法,直接用类名即可进行访问,因此,工具类无需创建对象,所以建议将工具类的构造器进行私有

  • 内部都是一些静态方法,每个方法完成一个功能

//类中都是一些静态方法,每个方法都是以完成的一个公用的功能为目的,这个类用来给系统开发人员的使用

static工厂类

  • 进行批处理
  • 不需要

static的好处和要求

  • 一次编写,处处可用,提高代码的重用性
  • 建议对工具类的构造器进行私有化
  • 工具类不需要创建对象

代码

代码块分为:

  1. 静态代码
    • 格式为:static{ }

    • 特点:需要通过static关键字修饰。随着类的加载而加载,并自动触发、只执行一次。

    • 使用场景:在类加载的时候做一些静态数据初始化的操作,以便后续的使用

      可以加载静态资源、加载一个文件文件内可以有玩家的姓名等内容

  2. 构造器代码块(了解,少见)(实例代码块):
    • 格式:{ }位置类内方法
    • 特点:每次创建对象,调用构造器执行时,都会执行该代码块中的代码,并且在构造器执行前执行
    • 使用场景:初始化实例资源。
  3. 局部代码

静态代码块案例

//斗地主游戏
/*需求:
在启动游戏房间的时候,应该提前准备好54张牌,后续才可以直接使用这些牌数据

分析:
1.该房间只需要一副牌。
2.定义一个静态的ArrayList集合存储54张牌对象,静态的集合只会加载一份。
3.在启动游戏房间前,应该将54张牌初始化好
4.当系统启动的同时需要准备好54张牌的数据,此时可以用静态代码块完成
*/

//源码:
public class DiZhu {
    public static ArrayList<String> card=new ArrayList<>();
    /*
    程序运行main之前放入54张牌,游戏可以直接使用
    比较专业
     */
    static {
        //正式做牌,放入集合中
        //定义一个数组进行存储,点数,和个数,类型
        String[] sizes={"3","4","5","6","7","8","9","10","J","Q","K","A","2"};
        String[] colors={"♣","♦","♥","♠"};
        //先遍历点数
        for (int i = 0; i < sizes.length; i++) {
            //size[i];
            //花色
            for (int j = 0; j < colors.length; j++) {
                String cards=sizes[i]+colors[j];
                card.add(cards);
            }
        }
        //加上大小王
        card.add("大王
                
                                

原文地址:https://www.jb51.cc/wenti/3285696.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐