gpt4 book ai didi

oop - 你如何向新程序员解释面向对象?

转载 作者:行者123 更新时间:2023-12-03 09:02:50 25 4
gpt4 key购买 nike

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

8年前关闭。




Improve this question




我的亲戚正在学习编程,很难理解类(class)。例如,他很难理解您需要实例化它,方法无法访问其他方法中的变量,并且如果您更改类的一个实例中的变量,则它不会针对其他实例而更改。

我试图使用类比定义就像房子的蓝图一样。实例是由该蓝图制成的房屋。

你一般如何解释类​​和面向对象?

最佳答案

认真使用动物,效果很好。这就是几年前为我确定这个概念的原因。刚刚找到这个 C# 代码。看起来不错

    // Assembly: Common Classes
// Namespace: CommonClasses

public interface IAnimal
{
string Name
{
get;
}
string Talk();
}

// Assembly: Animals
// Namespace: Animals

public class AnimalBase
{
private string _name;
AnimalBase(string name)
{
_name = name;
}
public string Name
{
get
{
return _name;
}
}
}

// Assembly: Animals
// Namespace: Animals

public class Cat : AnimalBase, IAnimal
{
public Cat(String name) :
base(name)
{
}

public string Talk() {
return "Meowww!";
}
}

// Assembly: Animals
// Namespace: Animals

public class Dog : AnimalBase, IAnimal
{
public Dog(string name) :
base(name)
{
}

public string Talk() {
return "Arf! Arf!";
}
}

// Assembly: Program
// Namespace: Program
// References and Uses Assemblies: Common Classes, Animals

public class TestAnimals
{
// prints the following:
//
// Missy: Meowww!
// Mr. Bojangles: Meowww!
// Lassie: Arf! Arf!
//
public static void Main(String[] args)
{
List<IAnimal> animals = new List<IAnimal>();
animals.Add(new Cat("Missy"));
animals.Add(new Cat("Mr. Bojangles"));
animals.Add(new Dog("Lassie"));

foreach(IAnimal animal in animals)
{
Console.WriteLine(animal.Name + ": " + animal.Talk());
}
}
}

一旦他确定了这一点,你就挑战他定义鸟(飞),然后定义企鹅(飞!?)

关于oop - 你如何向新程序员解释面向对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/355796/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com