面对对象编程三大特性简析

系列文章目录

面向对象编程是利用 类和对象编程的一种思想。万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的继承关系, 一个类和多个类的多态关系。万物皆对象,对象是具体的世界事物,面向对象的三大特征封装,继承,多态,封装,封装说明一个类行为和属性与其他类的关系,低耦合,高内聚;继承是父类和子类的关系,多态说的是类与类的关系。


前言

1、OOA:面向对象分析方法,是确定需求或者业务的角度,
按照面向对象的思想来分bai析业务。
2、OOD:面向对象设计方法是OO方法中一个中间过渡环节。
其主要作用是对OOA分析的结果作进一步的规范化整理,以便能够被OOP直接接受。
3、OOP:面向对象程序设计作为一种新方法,其本质是以建立模型体现出来的
抽象思维过程和面向对象的方法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、面对对象编程

二、三大特性

三大特性: 封装 继承 多态

1.封装

1.为什么需要封装

隐藏一个类中不需要对外提供的实现细节;

属性的封装:使用者只能通过事先定制好的方法来访问数据,可以方便地加入逻辑控制,限制对属性的 不合理操作;

方法的封装:使用者按照既定的方式调用方法,不必关心方法的内部实现,便于使用; 便于修改,增强 代码的可维护性;

封装

1、保证安全
2、提供便捷访问的方式
获取使用private修饰的属性/方法
保护属性不被修改
提供访问方式

2.如何封装

public void setName(String name){
    
           //赋值专用方法
        this.name=name;
    }
    public String getName(){
    
            //取值专用方法
        return name;
    }

2.继承

子类继承父类的方法和属性
子类用extends

public class dog extends  pet{
    
    
    //调用子类对象的方法时,可以调用子类中继承的父类方法
	//被重写的方法,用子类的重写方法
	//若被重写,还想调用父类方法,用super关键字来调
}

子类访问父类构造方法,不受重写影响

super();
super(name);//访问父类属性
super.name;//访问父类方法
super.print();

父类和子类构造方法的关系
当子类没有使用super()或者this()的方式指定调用构造方法时,或者没有方法重写
,会默认调用父类构造方法

super只能出现在子类的方法和构造中
super关键字的作用
只能出现在子类的方法中
用来区分父类和子类同名属性或方法


3.多态

一个事物的多种形态
子类对象引用父类类型

Man man=new Man();	//Man()   新建了两个,有两个变量可以作为这个对象的代表
man.eat();
Person p2=new Man();	//又称为 对象的多态性:父类的引用 指向 子类的对象
p2.eat();

多态的使用:当调用子父类同名参数方法时,实际使用的是子类重写父类的方法–(虚拟方法调用)
但是父类引用不能调父类里面没有的方法----编译看左边,执行看右边

1.向下转型

子类特有方法,父类类型没有办法直接访问,需要强制转换才可以

Man m1=(Man)p2;
Person p2通过Man强转 使m1可以运行子类Man()中的方法–
使用强转时可能出现异常

2.关键字instanceof

关键字instanceof:
a instanceof A :判断对象a是否是类A的实例。如果是返回true,不是则返回false
为了避免出现向下转型时出现异常,先用instanceof进行判断,true就转型

总结

提示、

猜你喜欢

转载自blog.csdn.net/balalaxstar/article/details/112855210