我今天知道了什么是面向对象啦(OOP)

面向对象(OOP)

OOP?OOM?OOP即为我们说的面向对象的思想,而OOM是面向内存的思想,例如C语言就是OOM语言,它可以直接对我们的计算机内存进行操作,需要考虑内存的性能以及对象的回收。而像Java等都是面向对象的语言,只要关心对对象的操作,而内存的管理交给Jvm虚拟机。

面向对象可以理解为现实世界模型的自然延伸,是一种“万物皆为对象的编程”。在现实生活中。任何一个事物都可以归结为一个类事物,每一个个体都是一个类的实例。面向对象编程是以对象为核心,以消息为驱动,所以程序=对象+消息。面向对象的主要特性有封装、继承、多态。

封装

面向对象的封装就是将我们的程序模块化,对象化,好比我们可以将程序比作一个人,将人物的的一些特征属性(比如头,手,足),还有对属性的一写动作(吃喝拉撒)都放到一个类里,这就是封装。

//将人封装为一个类将名字、年龄、性别

public class Person {
    private String name;
    private Long age;
    private char sex;
    private Double height;

    public void eat() {

    }

    public void drink() {

    }

    public void sleep() {

    }

    public void run() {

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Long getAge() {
        return age;
    }

    public void setAge(Long age) {
        this.age = age;
    }

    public char getSex() {
        return sex;
    }

    public void setSex(char sex) {
        this.sex = sex;
    }
    
    public char getHeight() {
        return height;
    }

    public void setHeight(char height) {
        this.height = height;
    }

}

继承

继承以人的角度来看的话,可以理解为一个对一个事物的延伸,进一步将一个事物的共有属性和行为进行抽象为父类,而继承他的子拥有父类的所有属性以及方法,可以对方法进行重写或者重载。

//例如学生和教师个体都继承人这个类,都有着人的特性。教师有自己的特性比如教书,学生也有自己的特性比如听课。

public class Student extends Person{
    public void listen(){
        
    }
}

public class Teacher extends Person{

    public void teach(){

    }
}

多态

同一操作,作用于不同的对象,可以产生不同的结果,就是多态。通常来说多态都是指运行期的多态,即是动态绑定。

满足三个条件:

  • 有类继承或接口实现
  • 子类重写父类的方法
  • 父类指向子类的实例。

例如,我们可以用人的类来创建出教师和学生不同的实例,来实现不同的实例方法。

 public static void main(String[] args) {
        Person student = new Student();

        Person teacher = new Teacher();
        
        student.eat();
        teacher.eat();
    }

以上便是面向对象编程的一个思想,是不是很简单呢?我是小小骚羊,一个生存在互联网的工具人,喜欢的我的就关注我哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值