【发布时间】:2018-12-13 03:27:42
【问题描述】:
首先我想说,如果这是一个愚蠢的问题,我真的很抱歉,但我刚开始学习课程,我以为我设法理解了它,但这让我很困惑,所以好像我没有't
我正在做这个 C# OOP edx 课程,我必须在不同的类文件中创建 5 个类(学生、教师、UProgram、学位、课程),并且有这个任务:
- 实例化一个名为 Information Technology 的 UProgram 对象。
- 在 UProgram 对象中实例化 Degree 对象,例如 Bachelor。
- 在 Degree 对象中实例化一个名为 softeng 的 Course 对象。
- 已经完成,(希望)那个没有问题
- 和 3. - 嗯。
我的想法(请记住,我是初学者): 首先,我想到了嵌套类,但我不太确定它们是如何工作的,并且认为我不能将这些类放在不同的文件中,因为它们应该嵌套(?) 然后我用构造函数尝试了一些东西,但我看不出如何让它工作
所以现在我最后的尝试是在类中创建方法(除了教师和学生的方法,因为他们不会有任何“属于他们”的东西,比如课程有学生和教师属于它
所以我有以下形式的方法(-假设我们在 Degree 类中,有一个方法可以为这个学位创建几个 Courses -):
public void Newcourse(string Cname, Course sth)
{
sth = new Course();
sth = Cname;
}
在我可以使用它之前,我必须编写
Course softeng = new Course();
在完成任务的第 3 点之前,我创建了 Course 类的实例
整个代码:
UProgram.cs
public class UProgram
{
public void Newdegree(string Dname, Degree sth)
{
sth = new Degree();
sth.Dname = Dname;
}
}
Degree.cs
public class Degree : UProgram
{
public string Dname { get; set; }
public void Newcourse(string Cname, Course sth)
{
sth = new Course();
sth.Cname = Cname;
}
}
Course.cs
public class Course : Degree
{
public void NewTeacher(string FirstName, string LastName, Teacher sth)
{
sth = new Teacher();
sth.FirstName = FirstName;
sth.LastName = LastName;
}
public void NewStudent(string FirstName, string LastName, Student sth)
{
sth = new Student();
sth.FirstName = FirstName;
sth.LastName = LastName;
}
public string Cname { get; set; }
}
Teacher.cs
public class Teacher : Course
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Student.cs
public class Student : Course
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
Program.cs
class Program
{
static void Main(string[] args)
{
var Information_Technology = new UProgram();
Degree bachelors = new Degree();
Information_Technology.Newdegree("Bachelors", bachelors);
Course softeng = new Course();
bachelors.Newcourse("Software Engineering", softeng);
Teacher t1 = new Teacher();
softeng.NewTeacher("Colin", "Firth", t1);
Student s1 = new Student();
softeng.NewStudent("Mary", "Sue", s1);
Student s2 = new Student();
softeng.NewStudent("Joseph", "Jojo", s2);
Console.ReadLine();
}
}
我知道-我知道,这很复杂,我什至不确定这是否好,但这是我所能想到的,如果你们中的任何人能帮助我,我将不胜感激(用不会让我哭泣的语气)
再次感谢您,对不起,代码这么乱,嗯,我试过了
【问题讨论】:
-
请花点时间阅读并理解此声明:
Teacher : Course,其含义类似于:教师就是课程。你认为这有意义吗? -
注意不要将类层次结构与数据层次结构相混淆。这是一个类层次结构——即继承——这不是答案。例如,您应该在 Degree 中实例化 Course,而不是在 main 中实例化所有内容。只有 UIProgram 需要在 main 中实例化。
-
对所显示的努力表示支持。