我想排序卡,但不知道如何使用构造函数将不同的卡类型与实际变量int类型连接起来。
“将卡的类型设置为类卡中的final static字段,以便可以通过例如Card.EFFECT_MONSTER调用它们。”
不允许使用枚举。
public class Card{
public String name;
public int releaseDate;
public int type;
final static int EFFECT_MONSTER = 1;
final static int NORMAL_MONSTER = 2;
final static int SPELL = 3;
final static int TRAP = 4;
public Card(String name,int type, int releaseDate){
this.name = name;
this.type = type;
this.releaseDate = releaseDate;
}
}
我不知道你说的“用int类型连接四个不同的静态字段”是什么意思,希望这就是你要问的。
class Card {
public String name;
public int releaseDate;
public int type;
final static int EFFECT_MONSTER = 1;
final static int NORMAL_MONSTER = 2;
final static int SPELL = 3;
final static int TRAP = 4;
public Card(String name,int type, int releaseDate){
this.name = name;
this.type = type;
this.releaseDate = releaseDate;
// Accessing the static variables, this is how you can access the static variable inside constructor. I've demoed a simple logic , don't know what you are trying to achieve
this.releaseDate = Card.NORMAL_MONSTER;
}
public String getName(){
return this.name;
}
public int getReleaseDate(){
return this.releaseDate;
}
}
除非我误解了您的代码,否则您要做的事情最好通过使用枚举数据类型来实现。枚举允许您定义一些预定义的常量,然后可以将这些常量用作数据类型。
因此,您应该为卡类型定义枚举:
public enum CardType {
EFFECT_MONSTER,
NORMAL_MONSTER,
SPELL,
TRAP;
}
然后在卡类中使用枚举作为类型:
public class Card {
public String name;
public int releaseDate;
public CardType type;
public Card(String name, CardType type, int releaseDate){
this.name = name;
this.type = type;
this.releaseDate = releaseDate;
}
}
创建一张卡片的工作原理就像
new Card("SpellCard", CardType.SPELL, 0);
对于非枚举解决方案:
没有办法以某种方式“自动连接”你的单个int到4个静态变量,如果不允许使用枚举,那么使用集合和/或java反射等更复杂的解决方案可能是不可能的。所以在这种情况下,你唯一的方法就是手动完成所有事情。
例如,在构造函数中,您可以执行:
public Card(String name,int type, int releaseDate){
this.name = name;
this.releaseDate = releaseDate;
boolean isTypeEffectMonster = (Card.EFFECT_MONSTER == type);
boolean isTypeNormalMonster = (Card.NORMAL_MONSTER == type);
boolean isTypeSpell = (Card.SPELL == type);
boolean isTypeTrap = (Card.TRAP == type);
if (!isTypeEffectMonster && !isTypeNormalMonster && !isTypeSpell && !isTypeTrap) {
// invalid type passed into constructor
throw new IllegalArgumentException("Illegal Type: " + type);
} else {
this.type = type;
}
}
我想排序卡,但不知道如何使用构造函数将不同的卡类型与实际变量int类型连接起来。 "将卡的类型设置为类卡中的final static字段,以便可以通过例如卡来调用它们。EFFECT_MONSTER" 不允许枚举。
问题内容: 表示变量只能在构造函数中分配一次。 表示它是一个类实例。 我不明白为什么禁止这样做。这些关键字在哪里互相干扰? 问题答案: 每次创建该类的实例时,都会调用一个构造函数。因此,上述代码意味着x的值将在每次创建实例时重新初始化。但是由于变量被声明为final(和static),因此您只能这样做 但是,如果删除静态,则可以执行以下操作: 或这个:
本文向大家介绍C#静态构造函数?相关面试题,主要包含被问及C#静态构造函数?时的应答技巧和注意事项,需要的朋友参考一下 最先被执行的构造函数,且在一个类里只允许有一个无参的静态构造函数 执行顺序:静态变量>静态构造函数>实例变量>实例构造函数
我目前在我的大学学习初级java课程,仍然在学习编程的基础知识。这周我们一直在学习构造函数,我被困在本周任务的后半部分,所以任何帮助都将不胜感激。 实验室的第二部分(我一直坚持的部分)的说明如下: 为类Truck编写完整的代码,如下面的类图所示。一定不要在构造函数中使用重复的代码。例如,具有2个参数的构造函数应该调用具有1个参数的构造函数来设置柱体的值。 这些是它想让我做的构造函数。 任何关于如何
问题内容: 我在任何地方都找不到它,所以您的帮助对我非常有用:)这是该字段: FragmentCategory: 这是发送的表格: 我尝试过这样的事情: categories = fragmentCategory.objects.get(id=1), 要么: 问题答案: Django文档的整个页面都专门针对此内容,并从内容页面进行了索引。 如该页面所述,你需要执行以下操作: 要么
我在Android中创建一个自定义视图,我想添加一个val字段到构造函数,但是View包含多个构造函数。 Kotlin不允许在二级构造函数中使用val字段,因此我无法执行以下操作: 如何向构造函数添加val字段,但仍然扩展父类的多个构造函数? 我尝试过将val添加到辅助构造函数,但是静态编程语言不允许在辅助构造函数上使用val。 我尝试过创建一个主构造函数(我计划显式使用的那个)并忽略其他构造函数