想象一下,我有一个很好的Deck课程,以最好的OO方式.它有卡片,有套装和等级,有Shuffle方法,等等.现在,我将有很多并发的Deck实例(比如这是一个赌场).问题是:所有甲板上的每张卡都应该有不同的实例吗?
我在接受采访时被问到一个问题而且我无法回答...这是问题所在
我的回答是它的另一个名称object......这个问题的正确答案是什么......
我正在创建一个类.
此类将用户首选项存储在Struct中.
在创建类的实例时,我希望客户端可以选择创建一个没有传入首选项或传入首选项结构的实例.
我可以用指针来做这个,但是我想知道如何通过引用将preferences结构传递给类来实现它.
无论哪种方式,一旦班级收到偏好,它就会制作一份供自己使用的副本.
这是指针的样子
struct preferences {};
class Useful
{
public:
Useful(preferences const * = NULL);
...
}
...
int main()
{
preferences * testPrefs;
...
Useful testClass(testPrefs);
// or if no prefs: Useful testClass;
...
}
Run Code Online (Sandbox Code Playgroud)
那么在创建默认值为no struct的类的实例时,如何通过引用传递首选项struct?这是我坚持的行,因为NULL和*NULL都不起作用:
class Useful
{
public:
Useful(preferences & = ???????);
Run Code Online (Sandbox Code Playgroud) 嗨,我在java中初始化有问题,下面的代码给我编译错误:expected instanceInt = 100; 但我已经宣布了.如果这些东西与堆栈和堆的东西有关,请用简单的术语解释,我是java的新手,我对这些领域没有高级知识
public class Init {
int instanceInt;
instanceInt = 100;
public static void main(String[] args) {
int localInt;
u = 9000;
}
}
Run Code Online (Sandbox Code Playgroud) 我试图找出如何确定给定对象在Object []数组中实例化的类.例如:
Object[] array = new Object[]{175, "sss", new Table(), true};
Object obj = array[0]; // hmm... can this be used as an integer or maybe as a string?
Run Code Online (Sandbox Code Playgroud)
它甚至可能吗?
在Scala中,我需要像Java中的代码一样:
public class A {
private String text;
public A(String text) {
this.text = text;
}
}
Run Code Online (Sandbox Code Playgroud)
如何在Scala中实现这一目标?
我知道我可以使用class A(text: String) { ... },但这只是一个非常简单的例子而不是真实案例.
我尝试了以下内容,它始终打印为null:
class A {
var text: String = null
def this(text: String) = {
this()
this.text = text
}
println(text)
}
Run Code Online (Sandbox Code Playgroud)
感谢帮助.
我有一个名为Card的类,我有这个for循环:
int i;
for (i = 0; i < 13; i++) {
Card cardNameHere = new Card();
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是基于for循环创建新实例.因此,例如,我希望名称为card1,card2,card3等.该数字将来自for循环.
我试过这个似乎不起作用:
int i;
for (i = 0; i < 13; i++) {
Card card[i] = new Card();
}
Run Code Online (Sandbox Code Playgroud)
谁能告诉我我做错了什么?
谢谢.
所以我使用的是Hovercraft Full Of Eels的解决方案,但我还有另外一个问题.
我正在使用cardList.add(new Card()); ,当我尝试使用Card(i)设置名称时,java不会让我这样做.使用它没有我工作正常,但我如何访问它所以我可以调用其他方法,如setId.我想调用cardName.setId();
我有一个小问题,我认为这是一个愚蠢的问题。我开始编写OOP编码,并且在Internet上看到很多具有以下代码段的类:
public static $istance;
public function __construct(){
//some code...
$this->instance = $this;
}
public function get_instance(){
return $this->instance;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:原因是什么?
这个问题类似于为什么可以从不同的实例访问"私有"方法?
我对那里的答案深信不疑.代码应该运行.但是,当我将代码更改为这样时
class Horse extends Animals{
}
public class Animals {
private void eat(){
System.out.println("Generic Eating");
}
public static void main(String[] args){
Animals h = new Horse();
h.eat();
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用多态来调用Sub-class Horse上的私有方法eat()时,它会工作并调用父类的方法.
我是Haskell的初学者.我有这个功能
test f xs
| length xs == 0 = []
| f (head xs) = head xs : test f (tail xs)
| otherwise = test f (tail xs)
Run Code Online (Sandbox Code Playgroud)
此函数应该从列表xs的每个元素中创建一个列表,该列表与f值匹配,但它会返回错误:
test 1 [1,2]
ERROR - Cannot infer instance
*** Instance : Num (a -> Bool)
*** Expression : test 1 [1,2]
Run Code Online (Sandbox Code Playgroud)
这部分:
| f (head xs)
Run Code Online (Sandbox Code Playgroud)
应该是Bool但是呢?它是否作为过滤器工作?如何使此功能起作用?提前致谢.