2017-06-05 39 views
0

每当我开始一个新的java项目时,我总是遇到同样的问题,学习:我永远不知道要上什么课,以及要把什么放在哪里。我很难将代码组织到不同的类中。当我创建一个新项目时,我永远不知道何时创建新类或做什么类,而且我很难组织我的代码

例如,我正在编写一个实验程序。它涉及太空飞船,一些敌方太空飞船和一些友好太空飞船,一把枪射向他们,等等。我想过创建一个宇宙飞船班,但后来不确定这是否应该是两班(一个是敌方飞船,一个是友军飞船)。但是后来我认为它应该是一类友好和敌方飞船可以成为太空船的例子。然而,敌人和友军飞船在整个实验过程中都有不同的用途,所以也许不会。我也知道我需要创建这些飞船的JLabels,并且不知道这些应该是Spaceship类实例的变量还是它们应该是在主方法中创建的东西。这一直持续下去。

有没有人有任何提示知道应该如何组织代码,应该由哪些类组成,等等?因为无论我写多少程序,这对我来说似乎都不会变得更容易。

+0

这个问题对于StackOverflow太宽泛了。这通常是伴随练习而来的,有一个能够纠正你的人(比如老师或高级同事)。最终你会为此发展一种直觉。重要的是不要一个人工作。 – RealSkeptic

回答

0

你的问题的答案取决于你如何理解面向对象的概念。 根据您的要求,您需要制作Spaceship界面或超级班。使敌方飞船和友方飞船成为Spaceship的子级。同样,你需要制作单独的枪类。根据您需要为每个对象创建对象的功能。你可以为你的飞船制作jLabel类。

你的主要方法将在一个类是你的应用程序的入口。根据您的应用程序中的类或层,您可以拥有不同的包。您还应该事先了解一些设计模式,以解决应用程序开发中出现的常见问题。

+0

你是怎么知道我只需要一个班级而不是两个班级的,你怎么知道我需要一个班级?你是如何做出这个决定的?另外,你为什么认为我应该创建一个JLabel飞船课程? – jmao

+0

因为每个实体都应该是面向对象编程中的一个对象。你应该把每件事看作一个对象。对象代表一个类。具有不同属性和行为的宇宙飞船应该是不同的对象。或者即使他们有共同的属性/行为,你应该考虑多态。这是一种很好的做法,也是你在面向对象编程中的工作方式。 –

+0

我可以用某些属性创建一个Spaceship类,然后有两个额外的类,EnemySpaceship和FriendlySpaceship,每个类都扩展了Spaceship类?我认为这是一个好主意,因为它们共享许多属性和行为,但它们也具有不同的属性和行为。 – jmao

相关问题