【发布时间】:2016-09-27 17:06:27
【问题描述】:
我正在编写一些学习材料,但遇到了一些我不理解的代码。
class Program
{
static void Main(string[] args)
{
var warrior = new Samurai();
warrior.Attack("the evildoers");
Console.ReadLine();
}
class Sword
{
public void Hit(string target)
{
Console.WriteLine("Chopped {0} clean in half", target);
}
}
class Samurai
{
readonly Sword sword;
public Samurai()
{
this.sword = new Sword();
}
public void Attack(string target)
{
this.sword.Hit(target);
}
}
}
就我而言,当我实例化 Samurai 时,我运行了 public Samurai() 方法。如果 Attack 方法在构造函数 public Samurai() 之外,如何调用方法 warrior.Attack?
【问题讨论】:
-
public Samurai()是Samurai类的构造函数,而不是方法。Attack()方法已经在构造函数之外,因此我对你真正想知道的内容感到困惑。 -
并在上面的注释中添加您正在通过 Samurai 类的对象调用 Attack 方法
-
我不清楚你在问什么。你不明白
warrior.Attack("the evildoers");为什么会调用Samurai的Attack方法,还是不明白这个过程是怎么做的? -
我必须说@d1du 你应该阅读 OOP 基本概念
-
public Samurai()是Samurai类的构造函数,public void Attack在该类中。因此,您可以在通过new Samurai()创建的Samurai实例上调用Attack。
标签: c# class object methods constructor