
Java面向对象编程_包&访问控制权限&构造方法私有化&枚举
发布日期:2021-05-14 11:31:58
浏览次数:26
分类:精选文章
本文共 2124 字,大约阅读时间需要 7 分钟。
总览
以下是关于多种设计模式的实现示例,以及枚举类型的应用实例
本文内容
1. 包
包用于在Java中对代码进行组织和分隔,允许你将命名空间划分为多个层次,提高代码的可读性和维护性。
2. 访问控制权限
访问控制权限是保证软件系统安全运行的重要机制,通过合理的权限分配和验证,可以防止未经授权的访问,保护系统的核心功能。
3. 构造方法私有化
构造方法私有化是一种防止类外实例化的设计模式,通过将构造方法设为私有(private),可以确保类只能由类内部或通过特定方法获取实例,避免滥用。
4. 枚举
枚举(Enum)是Java 1.5后引入的一种强类型常量的定义方式,通过枚举可以简化多例设计模式的实现并提升代码的可读性和维护性。
单例设计模式示例
4.1 饿汉式
在饿汉式单例设计模式中,类在准备阶段就创建了唯一的实例,并通过静态方法提供给外部使用。
class Singleton { private static final Singleton INSTANCE = new Singleton(); private Singleton() {} public static Singleton getInstance() { return INSTANCE; } public void echo() { System.out.println("单例设计模式"); }}
4.2 饱汉式
在饱汉式单例设计模式中,类在第一次需要实例化时创建实例,并在之后的调用中返回同一个实例。
class Singleton { private static Singleton instance; private Singleton() {} public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } public void echo() { System.out.println("单例设计模式"); }}
多例设计模式示例
在多例设计模式中,可以通过枚举或手动创建多个实例来实现不同的功能。以下是一个基于枚举的多例设计模式示例:
interface IMessage { public abstract String toString();}enum Color implements IMessage { RED("红色"), GREEN("绿色"), BLUE("蓝色"); private String name; private Color(String name) { this.name = name; } public String toString() { return " 枚举对象:" + this.name; }}public class 多例设计模式 { public static void main(String args[]) { Color color = Color.getInstance("blue"); System.out.println(color.toString()); for (Color c : Color.values()) { System.out.println(c.ordinal() + "-" + c.name()); } Color c = Color.RED; switch (c) { case RED: System.out.println("红色"); break; case GREEN: System.out.println("绿色"); break; case BLUE: System.out.println("蓝色"); break; } }}
枚举示例
枚举类型可以通过简单的定义方式创建多个常量,并支持通过名字或 ordinal() 方法进行操作。以下是一个简单的枚举示例:
enum Color { RED, GREEN, BLUE}
通过枚举,可以避免使用switch语句并显式匹配,提高代码的简洁性和可读性。
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年04月15日 03时36分03秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
VS2019 报错: LINK Error 无法找到 MSCOREE.lib的解决办法
2019-03-09
2021-04-23
2019-03-09
hadoop 分布式文件系统的计算和高可用
2019-03-09
【Linux】VMware Workstation 不可恢复错误: (vcpu-0)
2019-03-09
VS中 fatal error LNK1123: 转换到 COFF 期间失败 的解决方法
2019-03-09
关于Img标签在固定宽高的容器内部以图片比例缩放存在
2019-03-09
ant design pro v5去掉右边content区域的水印
2019-03-09
web_求和(练习)
2019-03-09
JavaScript——使用iterator遍历迭代map,set集合元素
2019-03-09
IAR调试卡顿的解决办法
2019-03-10
Course Schedule II
2019-03-10
Django ORM操作
2019-03-10
京喜小程序体验评分优化实践
2019-03-10
C#中文转换成拼音
2019-03-10
C++错误笔记
2019-03-10
【无线通信模块】GPRS DTU不稳定和容易掉线原因
2019-03-10
CSS(六)|页面布局之定位
2019-03-10
SpringBoot使用RedisTemplate简单操作Redis的五种数据类型
2019-03-10
国标流媒体服务器以ROOT身份运行提示“permission denide”报错解决
2019-03-10