怎样理解java的面向对象(什么是java的面向对象)
本篇文章给大家谈谈
面向对象编程只是一个模式,它提供许多概念,如继承,数据绑定,多态等等Simula是第一种面向对象的编程语言而一切都可表示为对象的编程模式被称为真正的面向对象的编程语言Smalltalk是第一个真正的面向对象的编程语言。
1. 面向对象编程对象表示真实的单词实体,如:笔,椅子,表等面向对象编程是一种使用类和对象来设计程序的方法或模式它通过提供一些概念简化了软件开发和维护:对象类继承多态性抽象封装组合 1.1. 对象任何具有状态和行为的实体都称为
对象例如:椅子,钢笔,桌子,键盘,自行车等它可以是物理和逻辑的 1.2. 类对象的集合称为类,它是一个逻辑实体 1.3. 继承当一个对象获外贸网站建设推广取父对象的所有属性和行为时,称为继承它提供代码可重用性,它用于实现。
运行时多态性继承是面向对象的编程概念,一个对象基于另一个对象构建继承是代码重用的机制, 被继承的类称为超类,继承超类的类称为子类在java中使用extends关键字来实现继承下面是java中继承的一个简单示例。
classSuperClassA{publicvoidfoo(){System.out.println("SuperClassA");}}// 继承 SuperClassA 类 classSubClassB
extendsSuperClassA{publicvoidbar(){System.out.prin外贸网站建设推广tln("SubClassB");}}publicclassTest{publicstaticvoid
main(Stringargs[]){SubClassBa=newSubClassB();a.foo();a.bar();}}1.4. 多态性当一个任务通过不同的方式执行时,称为多态性例如:以不同的方式说服客户,画一些东西,如:形状或矩形等。
在java中,使用方法重载和方法重写来实现多态性另一个例子是说话,人说人话,猫说话可以是:“喵喵”,而狗说话可能是“旺旺”等,说话时表示和声音也不太一样 参考以下代码 -publicclassCircle。
{publicvoiddraw(){System.外贸网站建设推广out.println("绘制圆形,默认颜色为黑色,直径为1厘米");}publicvoiddraw(intdiameter){System.out.println
("绘制圆形,默认颜色为黑色,直径为 "+diameter+" 厘米");}publicvoiddraw(intdiameter,Stringcolor){System.out.println("绘制圆形,颜色为 "。
+color+" ,直径为 "+diameter+" 厘米");}}这里有多种draw()方法,它们都有不同的行为这是方法重载的一种情况,因为所有方法名称都相同且参数不同这里编译器将能够识别在编译时调用的方法,因此这也外贸网站建设推广称为。
编译时多态当在对象之间具有“IS-A”关系时,实现运行时多态性这也称为方法重写,因为子类必须覆盖超类方法如果在超类中,实际的实现类是在运行时决定的编译器无法决定将调用哪个类方法此决定在运行时完成,因此这也叫作。
运行时多态或动态方法分派方法重写示例类:Shape.javapublicinterfaceShape{publicvoiddraw();}类:Circle.javapublicclassCircleimplements
Shape{@Overridepublicvoiddraw(){System.out.println("绘制圆形");}}*类:Square.java*publicc外贸网站建设推广lassSquareimplements
Shape{@Overridepublicvoiddraw(){System.out.println("绘制长方形");}}Shape是超类,它有两个子类Circle和Square,下面是运行时多态性的示例。
类:PolymorphismTest.javapublicclassPolymorphismTest{publicstaticvoidmain(Stringargs[]){Shapesh=newCircle
();sh.draw();Shapesh1=getShape();//一些确定形状的第三方逻辑 sh1.draw();}}在上面的外贸网站建设推广示例中,java编译器不知道在运行时使用的是哪个Shape的实现类,因此运行时多态性。
1.5. 抽象隐藏内部细节和显示功能称为抽象例如:电话,但我们不知道内部是如何处理通话/通信的抽象是隐藏内部细节和用简单的术语描述事物的概念例如,添加两个整数的方法该方法的内部处理对外界是隐藏的有许多方法可以在面向对象的程序中实现抽象,例如封装和继承。
Java程序也是抽象的一个很好的例子这里java负责将简单语句转换为机器语言,并隐藏外部世界的内部实现细节1.6. 封装将代码和数据绑定(或包装)在一起成为单个单元称为封装例如:胶囊,它包裹着不同的药物。
一个java类是封装的例子Java bean是完全封装的类外贸网站建设推广,因为所有的数据成员在这里是私有的封装是用于在面向对象编程中实现抽象的技术封装用于对类成员和方法的访问限制访问修饰符关键字用于面向对象编程中的封装。
例如,java中的封装是使用private,protected和public关键字实现的1.7. 组合组合是聚合的特例组合是一种更具限制性的聚合形式当“HAS-A”关系中包含的对象不能独立存在时,那就是组合的情况。
例如,房子里有房间没有房子,这里的房间不可能存在2. 面向对象编程的优点OOP使开发和维护变得更容易,因为在面向过程的编程语言中,如果代码随着项目规模的增长而增长,则不容易管理OOP提供数据隐藏,而在面向过程的编程语言中,可以从任何地方访外贸网站建设推广问全局数据。
OOP提供更有效地模拟真实世界事件的能力。如果使用面向对象的编程语言,我们可以提供真实世界里的问题的解决方案。
更多的学习视频可以到我的Java交流圈子Java程序员交流圈 - 知乎www.zhihu.com/club/1276849849217036288
作者:码邦主链接:https://www.cnblogs.com/hehe199316/p/13972422.html来源:博客园侵删