zoukankan      html  css  js  c++  java
  • 多例设计模式与枚举

    package com.anby;
    
    public class mode {
    	public enum student{
    		man,woman;
    
    	}
    	public enum student1{
    		man("男"),woman("女");
    		
    		//枚举中不能直接定义成员,必须要首先定义枚举常量才能生命枚举中的成员
    		//也就是说,枚举相当于多例模式,只是简化了书写
    		//枚举常量 默认 被static finaly修饰
    		
    		private String value;
    		private student1(String str)
    		{
    			this.value=str;
    		}
    		
    	}
    	/**
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		Person man=Person.man;
    		Person woman=Person.woman;
    		Person woman2=Person.woman;
    		
    		System.out.println(man);
    		System.out.println(woman);
    		System.out.println(woman2); //此时打印的woman=woman2
    		
    		
    		
    		//这里有点绕。。
    		//调用的是子类的方法
    	   System.out.println(man.getAge());
    		System.out.println(woman.getAge());
    		
    	}
    
    }
    
    abstract class    Person
    {
    	//私有化构造函数,通过内部成员进行初始化--传男 初始化男人,传女 初始化女人
    	
    	
    	//此时,对男女的年龄进行设置(通过内部类),在本类中提供一个抽象方法,用于外部访问该属性
    	
    	
    	//通过内部类,对年龄进行设置,外层类的抽象方法只是为了让本类型的实例进行访问
    	public static Person man=new Person("男"){   //这里也说明了,抽象类的内部类,可以对外部抽象类调用构造函数
    		  public   int getAge()
    		  {
    			  return 20;
    		  }
    	};
    	
    	public static Person woman=new Person("女"){
    		  public   int getAge()
    		  {
    			  return 22;
    		  }
    	};
    	
    	
    	private String value;
        private  Person(String value)
        {
        	this.value=value;
        }
        public abstract  int getAge(); //该抽象方法只是为了让实例调用该内部类中实现的方法
        
    }
    

      

  • 相关阅读:
    实体类、边界类和控制类
    面向对象分析和面向对象设计的区别
    面向对象分析与设计的步骤
    用例图:从用户角度描述系统功能,并指各功能的操作者
    面向对象分析和设计(OOA/D)
    在UML系统开发中有三个主要的模型
    UML建模之活动图介绍(Activity Diagram)
    活动图本质上就是流程图
    流程图
    流程、业务与事务
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/3025344.html
Copyright © 2011-2022 走看看