枚举与班级之间的关系是什么?

时间:2016-12-22 14:47:04

标签: enums enumeration

fig = plt.figure() m = Basemap(projection='mill', \ llcrnrlon= lonmin-0.02, \ urcrnrlon= lonmax+0.02, \ llcrnrlat= latmin-0.02, \ urcrnrlat= latmax+0.02, \ resolution='f') cmap = plt.cm.get_cmap('bwr_r') x, y = m(*np.meshgrid(lon,lat)) y = y.T cs = m.contourf(x,y,data,cmap=cmap) m.drawcoastlines(linewidth=1.,color='grey') m.drawcountries(linewidth=1.5,color='white') m.drawmapboundary(color='k',linewidth=2.0) m.fillcontinents(color='white') cb = m.colorbar(cs,location='bottom',size='5%',pad='8%') cb.set_label('[m]',fontsize=12) plt.show() 继承自class Dog时,我们会说“狗是动物”。 当class Animal有一个属性class Dog时,我们会说“狗”有一个名字'。 当Name有方法class Dog时,我们会说“狗可以睡觉”。

当一个班级有void Sleep()时,我们该怎么说?如果出现以下情况:

enum

将枚举放在哪里常见?是否通常将所有枚举放在一个大类中,就像使用扩展方法一样?

1 个答案:

答案 0 :(得分:1)

枚举是常量列表。话虽这么说,你作为开发人员确定在哪里使用它。通常是几个月,一周中的几天,访问类型是常见的枚举。比如关于狗的例子。我想到的一件事是爪子作为枚举,当你问狗的爪子,你奖励他。比如你的Dog课程:

public enum Paw{ RIGHTFRONT,LEFTFRONT,RIGHTRARE,LEFTRARE }

public Dog(Paw paw){
this.paw=paw;
}

public void rewardDog(){
switch(paw){
case RIGHTFRONT: giveFood();
break;
case LEFTFRONT: giveWater();
break;
};

然后在你的活动中:

Dog mDog=new Dog(Paw.RIGHTFRONT);
mDog.rewardDog();

如果是UserType,请将其视为对不同用户类型的某种限制。例如,当您为用户加载图标时,您可以定义如果usertype == Admin,那么在图标上会有一个表冠,如果usertype ==已注册,主图片上会有一个明星覆盖。或者管理员有权编辑帖子,评论;但是客人和已注册的人无法访问。