IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> 第二章 面向对象的理解 -> 正文阅读

[PHP知识库]第二章 面向对象的理解

2.1 面向对象
Java完全支持面相对象的三个基本特征:继承、封装、多态
程序的三中基本结构
一、顺序结构 由a入口到b出口的执行过程,按照顺序执行
注:Java方法类似结构化程序设计的函数,因此方法中的代码执行也是顺序结构
个人参考:普通方法和代码块
二、选择结构
选择结构是有选择性的执行结构,执行符合自己要求的函数,单分支判断的话,如果条件为false则什么都不执行,直接从a入口到b出口,如果为多分支则会进行判断,满足条件的函数将得到执行
个人参考:if语句和if…else语句,switch语句等
三、循环结构
当型结构:当条件为真(true)时,执行循环体,并且进行再次判断,循环直到条件为假(false)时,退出循环和停止判断,到达流程出口处,先判断再执行
个人参考:for语句,while语句
直到型循环:
从入口处直接执行循环体然后再判断是否满足条件,先执行再判断,直到条件为假时才结束循个人参考:do…while语句
如果一个循环体没有了可以作为参考的判断条件且在循环体里没有结束循环的标志则将成为死循环,通常没有任何意义的死循环体
面向对象程序设计简介:
面向对象的思想概念:将现实生活中客观存在的事物用代码抽象的表达出来,用人类的自然思维方式去进行编程,强调以现实生活的事物(对象)为中心来思考问题和解决问题,是非常强大优秀的编程思维,是优秀的程序设计方法
(个人理解)面向:以一个事物为中心,为核心参考出发
(个人理解)对象:现实中客观存在的事物,进行抽象化带入程序转化为代码,将一个事物数据化的抽象名词
面向对象基础思想:使用类、对象、继承、封装、消息等基本概念进行程序设计
个人想法:面向对象的设计方法非常优秀,要多锻炼自己的思维和逻辑思路,面向对象并不会过于脱离现实,是有趣又易编辑的设置放大
比如将一个小狗抽象化,用面向对象
定义小猫:public class Cat extends FatherCat{}
小猫的一些属性: int age=1 String type=“美国短毛猫” String name=“小咪”…等属性
小猫的一些行为:public void eat(String food){
System.out.println(“小猫在吃”+food+“中”);
}
这是面向对象的优秀设计方法,将现实生活客观存在的事物抽象化理解进行设计
成员变量(状态数据)+方法(行为)=类定义
面向过程以函数最大:eat(Cat,food)
面向对象以对象最大:Cat.eat(food)
两者区别还是面向对象(可读性更强更自然,一目了然
面相对象的基本特征

面向对象方法具有三个基本特征:封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism);
封装:将对象的细节隐藏起来,用一些公开的方法暴露该对象的功能;
个人比喻:你使用音乐软件听歌,想听什么歌就点击播放功能进行播放,但是你并不知道其播放原理和细节是什么,这就是封装,让用户使用功能而不需要去理解和知道其细节和原理;
继承:子类继承父类将会获得其方法和属性,子类会变成特殊的父类其扩展性更大,也是实现代码复用的重要手段,使用extends实现;
个人比喻:自己制作游戏,定义了一个怪物类,作为怪物的标准,新怪物都要继承这些行为(方法)和属性(成员变量)也可以进行修改,比如会飞的怪物和陆地上的怪物,他们的行走行为和攻击行为都可以进行重写,也成为了特殊的怪物(特殊的父类);
多态:是指子类对象可以直接赋值给父类变量但是运行时依旧是子类的行为特征,意味同一个类型的对象在执行同一个方法时会出现多种行为特征;
个人比喻:以鸟类为父类,鸵鸟和海鸥是其子类,在鸵鸟和海鸥执行多态的方法时

public class Bird{//父类鸟
String name="鸟类";
  public void fly(){
    System.out.println("飞翔");
 }
}
class Ostrich extends Bird{//鸵鸟类 继承父类鸟
String name="鸵鸟";
  public void fly(){//对父类鸟的重写(覆盖)
    System.out.println("我只能在地上奔跑");
 }
 public void run(){
 System.out.println("陆地上迅速奔跑");
 }
}
class Seagull extends Bird{
String name="海鸥";
 public void fly(){
    System.out.println("我可以展翅高飞");
 }
}
public static void main(String[]args){
 Bird blueBird=new Bird();
 blueBird.fly();//调用fly方法 输出结果是飞翔
 Bird seagull=new Seagull();
 seagull.fly();//输出的将是我可以展翅高飞
 Bird ostrich=new Ostrich();
 ostrich.fly();//输出的将是 我只能在地上奔跑
 ostrich.run();//这行代码会报错因为父类实际上并没有这个方法
 System.out.println(seagull.name);//会输出鸟类而不是海鸥子类的海鸥
 }

Bird bird = new Ostrich();//输出name变量是鸟类的,而运行不了run方法,如果方法有就是运行子类重写的方法
在多态时:属性看父类,方法看子类
类是对象的抽象,对象是类的实例
Java不支持多继承所以类的直接父类只有一个
面向对象实现了封装、继承、多态而基于对象只实现了封装,所以判断一门语言是否是面相对象,对于封装、继承、多态的实现则是缺一不可
2.2 UML(统一建模语言)介绍
OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)
OOA对目标进行分析建立模型进行文档化,OOD用面向对象的思想对OOA的结果进行细化,得出设计模型
UML就是这种用于描述、记录OOA和OOD结果的符号表示法
UML2.0组成:
静态图:用例图、类图、包图、组建图、对象图、部署图、复合结构图(2.0新增)
动态图:顺序图、通信图(对于1.x中的协作图)、状态机图、活动图、定时图(2.0新增)、交互概观图
UML图常用:用例图、类图、组建图、部署图、顺序图、活动图、状态机图;

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-09-22 14:26:09  更:2021-09-22 14:28:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 5:38:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计