当前位置:首页 > Java知识 > 正文内容

java面向对象的三大特征及实现方法(java面向对象菜鸟教程)

abcsky887个月前 (10-28)Java知识113

今天给各位分享

Java基础-面向对象本文主要介绍Java OOP 面向对象基础和相关类图@Eason | GaoJava基础-面向对象三大特性封装继承多态类图泛化关系 (Generalization)实现关系 (Realization)。

java面向对象的三大特征及实现方法(java面向对象菜鸟教程)

聚合关系 (Aggregation)组合关系 (Composition)关联关系 (Association)依赖关系 (Dependency)三大特性封装利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。

数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系用户无需知道对象内部的细节,但可以外贸网络推广是什么通过对象对外提供的接口来访问该对象优点:减少耦合: 可以独立地开发、测试、优化、使用、理解和修改

减轻维护的负担: 可以更容易被程序员理解,并且在调试的时候可以不影响其他模块有效地调节性能: 可以通过剖析确定哪些模块影响了系统的性能提高软件的可重用性降低了构建大型系统的风险: 即使整个系统不可用,但是这些独立的模块却有可能是可用的

以下 Person 类封装 name、gender、age 等属性,外界只能通过 get() 方法获取一个 Person 对象的 name 属性和 gender 属性,而无法获取 age 属性,但是 age 属性可以供 work() 方法使用。

注意到 gender 属性外贸网络推广是什么使用 int 数据类型进行存储,封装使得用户注意不到这种实现细节并且在需要修改 gender 属性使用的数据类型时,也可以在不影响客户端代码的情况下进行publicclassPerson

{​privateStringname;privateintgender;privateintage;​publicStringgetName(){returnname;}​publicStringgetGender

(){returngender==0?"man":"woman";}​publicvoidwork(){if(18<=age&&age<=50){System.out.println(name+" 外贸网络推广是什么is working very hard!"

);}else{System.out.println(name+" cant work any more!");}}}​继承继承实现IS-A关系,例如 Cat 和 Animal 就是一种 IS-A 关系,因此 Cat 可以继承自 Animal,从而获得 Animal 非 private 的属性和方法。

继承应该遵循里氏替换原则,子类对象必须能够替换掉所有父类对象Cat 可以当做 Animal 来使用,也就是说可以使用 Animal 引用 Cat 对象父类引用指向子类对象称为 向上转型 Animalanimal

=newCat();多态理解多态性 : 一种外贸网络推广是什么事物的多种形态何为多态性?对象的多态性 : 父类的的引用指向子类的对象(或者子类的对象吧赋给父类的引用)多态分为编译时状态和运行时状态 :编译时状态主要是指方法的重载

Animal s = new Cat();详解 :对于编译器来说,编译器只知道s的类型是Animal,所以编译器在检查语法的时候会去Animal.class字节码文件中找到move()方法,找到的话就进行绑定,此次编译通过,绑定成功。

(编译阶段属于静态绑定)运行时状态是指程序中定义的对象引用所指向的具体类型在运行时间才会确定详解 : 运行阶段的时候,实际上会在堆内存中创建Java对象 ,这个Java对象实际上就是Cat对象,所以在外贸网络推广是什么执行。

move()方法的时候,实际上真正参与到move()方法的真正的对象的是Cat(一只猫),所以运行阶段会动态执行Cat对象的move()方法(运行阶段属于动态绑定)但是运行的时候和底层堆内存中的实际对象有关 ,真正执行的时候会调用真实对象的相关方法 .。

多态总结:编译看左边,执行(运行)看右边对象的多态性:只适用于方法,不适用于属性多态性的使用前提:①类的继承关系 ② 方法的重写运行时多态有三个条件继承覆盖(重写)向上转型下面的代码中,乐器类(Instrument)有两个子类: Wind 和 Percussion,它们都覆盖了父类的 play() 方法,并且在 main() 方法中使用父外贸网络推广是什么类 Instrument 来引用 Wind 和 Percussion 对象。

在 Instrument 引用调用 play() 方法时,会执行实际引用对象所在类的 play() 方法,而不是 Instrument 类的方法publicclassInstrument{publicvoid

play(){System.out.println("Instument is playing...");}}​publicclassWindextendsInstrument{publicvoidplay

(){System.out.println("Wind is playing...");}}​publiccl外贸网络推广是什么assPercussionextendsInstrument{publicvoidplay()

{System.out.println("Percussion is playing...");}}​publicclassMusic{publicstaticvoidmain(String[]args

){Listinstruments=newArrayList<>();instruments.add(newWind());instruments.add(newPercussion

());for(Instrumentinstrument:instruments){instrument.play();}外贸网络推广是什么}}​类图泛化关系(Generalization)用来描述继承关系 ,在Java中使用extends关键字

@startuml​titleGeneralization​classVehicalclassCarclassTruck​Vehical<|--CarVehical<|--Truck​@enduml​泛化关系(Generalization)

用来实现一个接口 ,在Java中使用implements关键字

@startuml​titleRealization​interfaceMoveBehaviorclassFlyclassRun​MoveBehavior<|..FlyMoveBehavior外贸网络推广是什么<|..Run

​@enduml​聚合关系(Aggregation)表示整体由部分组成

@startuml​titleAggregation​classComputerclassKeyboardclassMouseclassScreen​Computero--KeyboardComputer

o--MouseComputero--Screen​@enduml组合关系 (Composition)和聚合不同,组合中整体和部分是强依赖的,整体不存在了,部分也会同时消失比如公司和部门 ,公司没了部分也不存在了。

但是公司和员工就是属于聚合关系,因为公司没了员工还在

@startuml​titleComposit外贸网络推广是什么ion​classCompanyclassDepartmentAclassDepartmentB​Company*--DepartmentACompany*--

DepartmentB​@enduml​关联关系 (Association)表示不同类对象之间有关联,这是一种静态关系,与运行程序的状态无关,在最开始就可以确定因此可以用1对1、多对1、多对多这种关联关系来表示。

比如学生和学校就是一种关联关系,一个学校可以有很多学生,但是一个学生只属于一个学校,因此这是一种多对1的关系,在运行开始之前就可以确定

@startumltitleAssociationclassSchoolclassStuden外贸网络推广是什么tSchool"1"-"n"Student@enduml依赖关系 (Dependency)和 关联关系不同的是,依赖关系是在运行阶段起作用的。

A类和B类是依赖关系中主要的三种表现形式 :A类是B类中(某种方法的)局部变量。A类是B类方法的一个参数。A类向B类发送消息,从而向影响B发生变化。

@startumltitleDependencyclassVihicle{move(MoveBehavior)}interfaceMoveBehavior{move()}note"MoveBehavior.move()"

asNVihicle..>MoveBehaviorVihicle..N@enduml参考资外贸网络推广是什么料Java编程思想看懂UML类图和时序图面向对象三大特征------封装、继承、多态Java实现面向对象编程(OOP)

JavaOOP基础知识总结Java抽象类与OOP三大特征

扫描二维码推送至手机访问。

版权声明:本文由海南拓宏网络科技工作室发布,如需转载请注明出处。

本文链接:http://4blc.com/post/604.html

分享给朋友:

“java面向对象的三大特征及实现方法(java面向对象菜鸟教程)” 的相关文章

java实训培训(java培训内容有哪些)

今天给各位分享 Java广泛应用于整个行业,尤其是在企业软件领域,这带来了许多高薪的工作机会,并使这种编程语言成为新手的通用语言然而,这些并不是Java的唯一优势,它允许你采用良好的实践,并使将来学习其他语言更加容易毫无疑问,如果你遵循正确的方法,你可以很容易地学会它。 想...

java是什么百度百科(java是什么玩意)

本篇文章给大家谈谈 90后或者00后小时候如果用国产山寨机下过游戏的,想必会经常看见游戏开始页面上会有一个Java的字样和一杯咖啡的LOGO许多人会比较好奇,Java是什么意思?长大之后或许听说过Java是一种编程语言,但也会不禁思考Java是干什么用的?今天我来给没有接触过计算机...

effective java中文版翻译太烂了(effective java在线阅读)

今天给各位分享   脚本之家你与百万开发者在一起 “我很希望我10年前就能拥有这本书有人可能认为我不需要任何Java方面的书籍,但是我需要这本书” ——Java之父James Gosling这段话出自Java之父JamesGosling对《Effecti...

基于java的班主任管理系统(java学生管理系统简单)

今天给各位分享 ★ 老师介绍 ★ Alex亚马逊(美国)资深Java工程师Alex老师毕业于卡内基梅隆大学,现任职于亚马逊AWS(美国硅谷)从事云计算服务开发工作,前腾讯工程师擅长云计算,分布式系统,Web后端开发,信息安全现在主要学习和研究函数式编程和分布式系统相关领域。...

找培训机构学java要学多久(培训机构学java学的难受)

本篇文章给大家谈谈 在培训班学Java大概要花多少钱?大概是8000-25000的样子,这主要是看自己的选择,像线上机构要实惠很多,万元以内,而且除了学费之外,也没有额外的开销而线下机构就不一样,除了20000多的学费之外,还有食宿费需要另外算。 相对来说,性价比高点的就是...

java培训的费用大概多少,都包含哪些费用和费用(java培训费用大概是多少)

本篇文章给大家谈谈   很多人转行学习Java开发技术,报名参加培训班是比较快捷的方式,大家普遍关心Java培训的费用,下面知了堂Java培训机构带大家一起了解一下java培训机构的收费标准是什么样的?  java培训一般多少钱?   国内各地的JAVA培训学费的市场不一样...