[已解决问题] 结构化分析设计方法的问题
提问者:seifer_08ms - Q苗三级  [收藏]
悬赏沪元:200 浏览 419 次
老师让我们讨论这个问题。结构化分析设计方有没有面向对象中的一些概念的体现?比如封装,继承,多态。请大家也一起讨论一下吧?
最佳答案
结构化的提法应该已经过时。如果你的意思是说结构化方法里面有没有OO思想的萌芽,那应该还是有一些的。不过我没有专门研究过软件工程学,没法具体回答了。
2008-4-16 10:51:26 回答者:phoenie


提问者对于答案的评价:谢谢
其它回答(2)
1。类是对对象的一个抽象,同时类也为对象进行了封装。所谓封装是说类的设计者只是为使用者提供类 对象可以访问的部分,而对于类中其他隐藏起来的成员变量 方法,用户不能访问。
实现方式:A:在类的定义中设置对对象中成员变量和方法进行访问的权限;
B:提供一个统一的供其他类引用的方法;
C:其它对象不能直接修改文本对象所拥有的属性和方法。
2。访问权限:
A:private的成员变量和方法只能被这个类本身的方法访问;
B:默认的成员变量和方法只被同一个包内的其它所有类都可访问,包外不可;
C: protected的成员可以被这个类的本身、它的子类(同不同包均可)访问;
D: public 完全公开。一个程序里最多只能有一个类被修饰为public,若程序中没有任何public 类,且文件名是程序中的一个类名,则该类被视做public
注:不能用protected和private饰!!!!

3。类的继承:
3.1 类继承的实现:
A:java中Object类是java中所有类的祖宗!
儿子A extends 老爸------只能有一个老爸!
3.2 this和super:
this: this.数据成员 this.实例方法 this(参数)--引用本类中其他构造方法。
super:表示当前对象父类对象的引用
super.数据成员 super.实例方法 super(参数)--引用父类的构造方法。--通常在实现子 类的构造方法时,要先调用父类的构造方法!并且用来调用父类构造方法的super()必须放在子类构造方法的句首
3.3 初始化顺序:
A 对象的初始化顺序: 先静态成员,再非静态成员,再构造方法,
B 继承中构造方法的调用顺序: 先父类,再子类。

3.4 对象之间的类型转换:
对象转换的圣经:只能说猫是哺乳动物,不能说哺乳动物是猫!!!当说猫是哺乳动物时,猫将失掉猫独有的属性和行为!!!(作为猫时新增的成员变量和方法)

哺乳动物 aa=new 猫()---猫是哺乳动物(要通过IS-A测试)
4.千呼万唤始出来------多态!
所谓多态就是同一方法获得不同的行为特性!
分为:
A 编译时多态性---重载 (参数个数不同或参数类型不同)
B 动态多态性----覆盖( 改写后的方法不能比覆盖的方法有更严格的访问权限--只能更加开放& 改写后的方法不能比被覆盖的法产生更多的例外)

一。深入继承:
1》设计继承树:
(1)找出具有共同属性和行为的对象(狼和狗与羊^^---动物共同的属性)
(2)设计代表共同状态与行为的类(都属于动物!---父类)
(3)决定子类是否需要让某项行为有特定不同运作的方式(都会吃,但羊只吃草---方法的覆盖)
(4)通过寻找使用共同行为的子类找出更多抽象化的机会(狼和狗属于犬科!!!--再继承)
(5)检查设计是否合理(IS-A)
(6)大功告成!
2》继承的意义:
(1)避免了重复的代码(子类会时时响应父类的改变)
(2)定义出共同的协议(服务于多态^^)
?当定主义出一组类的父型时,你可以用子型的任何类来填补任何需要或期待父型的位置?

二。深入多态:
(1) class Vet{
public void giveShot(Animal a){

a.makeNoise();

}
}
class PetOwner{
public void start(){
Vet v=new Vet();
Dog d=new Dog();
Hippo h=new Hippo();
v.giveShot(d);
V.giveSHot(h);
}
}
在此例中如果用Animal类型来声明它的参数(返回类型、数组的类型),则程
  6个月前   回答者:艳艳88373922 - Q果七级
这样的问题,还是到CSDN问问吧,那里高手多
http://bbs.csdn.net/
  6个月前   回答者:nicole7 - Q核八级
评论
   您需要登录以后才能回答!
我的问题    我要提问


相关链接

快到期问题


有不合适内容,建议去除