在SimpleApp教程中,作者将他所有的代码放在一个类文件中。雨水和水桶在里面。我会如何将代码移到不同的类中?
我试着把代码放到另一个类中,但之后我的代码中会有重复的方法,并且逻辑上它会不正确。例如,我在游戏中不能有两种创建方法。
我怎么会拿雨或桶从tutorial,并把它分成不同的类?
在SimpleApp教程中,作者将他所有的代码放在一个类文件中。雨水和水桶在里面。我会如何将代码移到不同的类中?
我试着把代码放到另一个类中,但之后我的代码中会有重复的方法,并且逻辑上它会不正确。例如,我在游戏中不能有两种创建方法。
我怎么会拿雨或桶从tutorial,并把它分成不同的类?
这很简单:你可以从OOP风格的编码中受益:
只需使用超类RainBucket
,其中包含所有方法,每个方法的代码最少。
从这个超类扩展的其他两个类,并在它重写你的类要使用的方法,这样你会acomplishing以下OOP规则:
传承:当您从超级派生其他类的两个对象:
class Bucket extends RainBucket {
class Rain extends RainBucket {
多态性:你可以声明两个对象从相同的超类 但作为值就像 这个分配给两个不同的派生类:
RainBucket bucket = new Bucket()
和
RainBucket rain = new Rain()
我认为我做了继承权,但我不明白这种多态性。我创建了
在此处发布代码。 – GingerHead 2012-04-26 05:47:47
'RainBucket bucket = new Bucket(); \t RainBucket rain = new Rain(); \t @Override \t公共无效创建(){ \t \t雨(); \t \t Bucket(); \t} \t @Override \t公共无效渲染(){ \t \t雨(); \t \t Bucket(); \t}'这是在主类 – Blue 2012-04-26 13:38:58
你会抽象出共同的功能集成到一个Abstract class或Interface,然后同时拥有雨水桶从类继承。
因此,对于您的特定示例,请通过这两个类,找到所有常用函数并将它们抽象为超类。
你的问题是不是很clear.Can粘贴代码你想转移到一个单独的课程。您应该始终通过IDE中提供的重构工具来移动代码。 – Edge 2012-04-25 16:14:44
它在一个类中的所有一个,向下滚动到底部,你会看到我的意思 – Blue 2012-04-25 16:29:23
它是反对SO规范谈论代码不存在这里的问题。 – 2012-04-25 16:37:14