我正在制作一个你正在发射"爆炸"的程序,我有5个弹药.我正在爆炸一个有5个健康的外星人.最后,我实例化播放器并让他爆炸6次以检查程序是否正常工作.但是我这样做的方式使得数量不会减少.有没有一个简单的解决方案,或者我只需要为弹药和健康创建一个新的属性?这就是我所拥有的:
class Player(object):
""" A player in a shooter game. """
def blast(self, enemy, ammo=5):
if ammo>=1:
ammo-=1
print "You have blasted the alien."
print "You have", ammo, "ammunition left."
enemy.die(5)
else:
print "You are out of ammunition!"
class Alien(object):
""" An alien in a shooter game. """
def die(self, health=5):
if health>=1:
health-=1
print "The alien is wounded. He now has", health, "health left."
elif health==0:
health-=1
print "The alien gasps and says, 'Oh, this is it. This is …Run Code Online (Sandbox Code Playgroud) 可能简单但无法弄清楚.我在运行时加载程序集并浏览一些类并为其属性生成输入控件.要在运行时创建对象的实例,我使用:
object o = PropertyType.GetConstructor(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public, null, Type.EmptyTypes,null).Invoke(null);
Run Code Online (Sandbox Code Playgroud)
它适用于类类型.当类型是数组时,我使用
object o = PropertyType.Type.GetConstructor(new Type[] { typeof(int) }).Invoke(new object[] { 0 });
Run Code Online (Sandbox Code Playgroud)
这也很好.但是当涉及到字符串类型或值类型时,GetConstructor.Invoke不起作用.我也尝试过Activator.CreateInstance也没用.
我正在创建一个类.
此类将用户首选项存储在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) <?php
class Student { public $name = "Benjamin"; }
$name = new Student();
?>
<p>Hello, there. My name is <?php $name->name ?></p>
Run Code Online (Sandbox Code Playgroud)
上述代码无法正常工作(在"p"标签内打印名称).但是下面的代码当然可行:
<?php
class Student { public $name = "Benjamin"; }
$name = new Student();
echo '<p>Hello, there. My name is ' . $name->name . '</p>';
?>
Run Code Online (Sandbox Code Playgroud)
关闭PHP标签时类是否被破坏?
第二个代码示例是否有解决方法?
谢谢,一如既往.
我坚持定义具有不同名称的多个对象的困境,我想根据我需要从程序的另一部分获取的数量来定义一定数量的对象
部分对象(i)不正确,我只是把它放在那里来说明我的问题
for(int i = 1; i <= amountOfObjectsNeeded; i++){
someclass object(i) = new someclass();
}
Run Code Online (Sandbox Code Playgroud)
有谁知道怎么解决这个问题?
我想问一下C++中哪里是实例化实例变量的正确位置?我认为它不应该在类声明中,但除了面向对象设计不佳之外,我不会看到任何缺点:
class A{ member m; };
我认为最好是这样的:
class A{ extern member m; };
但我不知道如何在没有像这样的指针的情况下实现它:
class A{ member* m };
A::A(){ m = new member; }
是否有"干净的解决方案"在堆栈上实现这一点(不使用指针)?
我希望有人可以帮助我.我一直在研究这个问题几个小时,似乎没有其他人有同样的问题(我遇到过).我必须犯一些真正的傻瓜错误.
我是Java新手,设计了一个非常简单的Java程序.
我有一个名为Student的抽象超类.这Student超有3个扩展类叫Graduate,Undergraduate和PartTime.Student类有几个抽象方法和几个非抽象方法.我已经验证了所有定义的抽象方法Students都已在所有3个扩展类中实现.
现在我正在尝试做一些非常简单的事情.我正在尝试实例化其中一个扩展类.如果我这样做:
Student student = new Student();
Run Code Online (Sandbox Code Playgroud)
Netbeans说Student is abstract; can't be instantiated.好的,很好,我理解为什么抽象类无法实例化.然后我试试这个:
Student.Graduate student = new Graduate();
Run Code Online (Sandbox Code Playgroud)
而Netbeans说an enclosing instance that contains studentmanager.Student.Graduate is required(studentmanager是我的包名).我无法弄清楚这意味着什么.但是,我确实发现我可以像这样实例化学生而不会出错:
Student[] student = new Student[1];
Run Code Online (Sandbox Code Playgroud)
但是,如果我然后尝试做下一个合乎逻辑的事情:
student[0] = new Graduate();
Run Code Online (Sandbox Code Playgroud)
我得到了同样的an enclosing instance...错误.
底线是我想知道如何实例化Graduate.谁能帮我吗?任何见解将不胜感激!
谢谢.
我有这个想要运行的GUI,当我尝试从类中创建一个Object时,我得到错误无法实例化类型GUI.那是什么意思,我该如何解决?
主类中的代码
public static void main(String[] args){
//Classes
GUI go = new GUI();
//Running Class Methods
//JFrame
//JFrame frame = new JFrame("Yatsy");
go.setVisible(true);
go.setVisible(true);
//go.setLocation((dim.width - width) / 2, (dim.height - height) / 2);
go.setSize(width, height);
System.out.println(width + " " + height);
//draw paint = new draw();
//go.add(paint);
}
Run Code Online (Sandbox Code Playgroud)
GUI类中的代码
public GUI(){
super();
panel = new JPanel();
roll = new JButton("Roll");
nextPlayer = new JButton("Next Player");
bDice1 = new JButton("dice");
quit = new JButton("Quit");
use = new JButton("Use");
roll.addActionListener(
new …Run Code Online (Sandbox Code Playgroud) 我有下一个构造:
public Dato (String nombre, float limiteInferior, float limiteSuperior) {
this.nombre = nombre;
this.limiteInferior = limiteInferior;
this.limiteSuperior = limiteSuperior;
}
Run Code Online (Sandbox Code Playgroud)
我想在limiteInferior> = limiteSuperior时停止实例化或"返回null".就像是:
public Dato(String nombre, float limiteInferior, float limiteSuperior) {
//Validar que el limite superior no sea menor o igual al inferior
if (limiteInferior < limiteSuperior) {
this.nombre = nombre;
this.limiteInferior = limiteInferior;
this.limiteSuperior = limiteSuperior;
} else {
this = null;
}
}
Run Code Online (Sandbox Code Playgroud) 在我实例化之后,为什么我的C#对象为null?
我要么不知道如何在C#中实例化一个类,要么就是我在这里缺少2D矩阵的技巧.(无论哪种方式,我都是新手,我限制自己每天在Stack Overflow上提出一个问题,所以使用downvotes轻松一下......)
我的程序是一个Win8应用程序.
我有一个C#类,有三个成员.他们是:
class CMyClass
{
public double[][] matrix1;
public double[][] matrix2;
public double[][] matrix3;
}
Run Code Online (Sandbox Code Playgroud)
我尝试在我的程序中实例化它,如下所示:
CMyClass myObject = new CMyClass();
Run Code Online (Sandbox Code Playgroud)
然后,如果我尝试访问任何矩阵成员来读取或写入数组,我会得到一个空引用异常错误,表示该对象未实例化.我的课程中缺少什么,或者我试图实例化对象的方式有问题吗?
instantiation ×10
java ×4
class ×3
c# ×2
c++ ×2
attributes ×1
constructor ×1
destructor ×1
instance ×1
netbeans ×1
null ×1
object ×1
php ×1
python ×1
reflection ×1
stack ×1
swing ×1
tags ×1