面向对象(Object-Oriented)
面向对象(Object-Oriented)
1.类与对象
对象是对客观事物的抽象,类是对对象的抽象。对象是类的实例,类是对象的模板。
抽象:从被研究对象中舍弃个别的、非本质的或与研究主旨无关的次要特征,而抽取与研究内容有关的共性内容加以考察,形成对研究问题正确、简明扼要的认识。
2.类的域和方法
类和对象都有域和方法。
域是事物静态特征的抽象,也称属性或数据成员。
方法是事物动态特征的抽象,也称操作或成员方法。
3.对象创建和声明
创建对象:new Fruit(); ————分配在堆上
声明一个对象引用:Fruit f; ———— 分配在栈上
初始化对象引用:f=new Fruit();
方法中定义的基本类型变量和对象的引用变量都是在栈内存中分配的。由new创建的对象存放在堆内存中。
4.三大基本特征:封装(encapsulation)、继承(inheritance)和多态(polymorphism)。
(1)封装
封装:利用抽象数据类型(类)将数据和基于数据的操作绑定在一起,数据被保存在抽象数据类型内部,系统只有通过被授权的操作方法才能够访问数据。封装是基于安全性的考虑,主要表现在定义为private。
特点:
①数据和基于数据的操作方法构成一个统一体;
②类的操作方法实现细节被隐藏起来,只是通过操作接口名称进行调用,操作内部的变动不会影响接口的使用。
面向对象程序设计其中的一个关键是具有“高内聚,松耦合”的特点,这个特点就是通过封装和组合技术的综合运用来实现的。封装是利用访问控制符来实现,组合通过对象内部的属性引用来实现。
(2)继承
继承:使用关键字extends使两个类发生继承关系,新定义的类称为子类,子类可以从父类那里继承相应的属性和方法。一个类只允许有一个父类(单继承)。
注:
Object是所有类的共同祖先。
被final修饰的类称为最终类,它不能有子类。
继承的设计用途:
①是面向对象程序设计中对功能进行复用的重要手段;
②为引用带来了新特点,即使父类的声明可以引用所有子类对象。
(3)多态
多态:一个程序中同名但不同方法共存。Java提供两种多态机制——重载和覆盖。
重载(overloading):在类中定义了多个同名而不同内容参数的成员方法时,称这些方法是重载。
注:同名同参数但不同类型返回值的方法不是重载,不能通过编译。
覆盖(overriding):子类对父类参数相同、返回类型相同的同名方法重新进行定义。
注:
同名的static和非static不能相互覆盖;
当方法前有final修饰时,此方法不能在子类中进行覆盖;
抽象类中如果存在抽象方法,则具体子类必须对抽象方法进行覆盖。
面向对象(Object-Oriented)相关推荐
- Java基础篇--面向对象(Object Oriented)
Java基础篇--面向对象(Object Oriented) 1. 面向对象概念 1.1 什么事面向对象 1.2 理解面向对象 1.3 面向对象的特点 1.4 面向对象开发设计特征 2. 类与对象 2 ...
- 面向对象(Object Oriented)
面向对象 面向对象(Object Oriented)是软件开发方法,一种编程范式.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管 ...
- Re: Object Oriented
面向对象(Object Oriented,OO)是软件开发方法.面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统.交互式界面.应用结构.应用平台.分布式系统.网络管理结构.CAD技术 ...
- Python编程基础:第三十九节 面向对象编程Object Oriented Programming
第三十九节 面向对象编程Object Oriented Programming 前言 实践 前言 到目前为止我们都是函数式编程,也即将每一个功能块写为一个函数.其实还有一种更常用的编程方式被称为面向对 ...
- OO开发思想:面向对象的开发方法(Object oriented,OO)
面向对象的开发方法(Object oriented,OO)认为是好文章吧,拿来分享一下(转载) 面向对象的开发方法(Object oriented,OO) 从事软件开发的工程 师们常常有这样 的体会: ...
- 面向对象编程(Object Oriented Programming)概念总结及延伸(一)
1.介绍 笔者的梦想是成为一个架构师,但是要成为一个合格的架构师是相当不易的,它既需要丰富的项目经验也需要不断地吸取新的知识,而且在这过程中我们也要不断巩固基础知识.我也注意到了,现在主流的文章大都集 ...
- Java SE 008 理解面向对象程序设计 (Inside Object Oriented Programming)
Java SE 008 理解面向对象程序设计 (Inside Object Oriented Programming) 前言:此笔记为圣思园张龙老师讲述的java视频课程笔记,自己看视频学习时记录的, ...
- Object Oriented Programming面向对象编程
OOP 面向对象编程( Object Oriented Programming)是一种 计算机编程 架构.OOP 的一条基本原则是 计算机程序是由单个能够起到子 程序作用的单元或 对象组合而成.OOP ...
- 面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA)、 面向对象设计(OOD)
面向对象简称 OO(Object Oriented),20 世纪 80 年代以后,有了面向对象分析(OOA). 面向对象设计(OOD).面向对象程序设计(OOP)等新的系统开发方式模型的研究. 对象的 ...
- java面向对象的设计思想,java设计形式之面向对象的思想(think in OO(Object Oriented))...
java设计模式之面向对象的思想(think in OO(Object Oriented)) 面向对象的概念: 就是用对象的思维方式,抽象生活中的事物,设计程序,其基本思想是使用对象,类,继承,封装, ...
最新文章
- Anroid-async-http封装网络请求框架源码分析
- 腾讯助力贵阳市智慧升级 共同探索创新型城市发展
- C# 使用 Lotus notes 公共邮箱发送邮件
- java基础输入输出语句
- 最短路(HDU-2544)
- PHP中exec、system等函数调用linux命令问题
- 647. 回文子串(JavaScript)
- Spring Boot Serverless 实战系列“架构篇”首发 | 光速入门函数计算
- 这道考 switch 控制语句的阿里基础面试题你能答对吗?
- 2011蓝桥杯--神秘的三位数
- 一座5g基站造价多少?
- 【基础篇】SpringBoot 自定义 Banner
- 2022.5.4.学习笔记数据类型
- 关系型数据库及其SQL基础语句
- 「多校联考」第三周二场
- 深度神经网络的理解和实践例子,很好。
- HTML和CSS实战项目
- 基于springboot的租车系统(包含数据库源代码、完美运行、可远程调试)
- 顺丰和菜鸟对用户数据寸土不让 战争平息需监管层
- 这群工程师竟然这样过“五四”!