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(); //该抽象方法只是为了让实例调用该内部类中实现的方法
        
    }
    

      

  • 相关阅读:
    Linq 入门 顺带 Func与Action
    关于asp.net 的一些好资料地址 , 防止丢失!
    Sql日期时间格式转换 备用
    自己动手写 ASP.NET MVC 分页 part1
    怎么做好一个美食排行榜的用户投票功能?
    「要买车网」免费获取汽车电商要买车网购车优惠券
    MVC Ajax Form & Ajax Valida(笔记)
    C# 序列化高级用法
    我与葡萄城的故事
    生成分布式随机ID
  • 原文地址:https://www.cnblogs.com/anbylau2130/p/3025344.html
Copyright © 2011-2022 走看看