什么是面向对象

面向对象是什么


前言

目前it互联网中使用最多的就是java语言(也是骂声最多的囧),大家都知道java与C++都是面向对象编程的。所以进入这个行业需要知道面向对象是什么。

一、官方回答

面向对象的方法主要是把事物给对象化,包括其属性和行为。面向对象编程更贴近实际生活的思想。总体来说面向对象的底层还是面向过程,面向过程抽象成类,然后封装,方便使用就是面向对象(万物皆对象)。emm怎么说呢,这也太抽象了,或者说不够接地气。我这里也稍微贡献一下自己那绵薄的想法,帮助大家理解。

二、面向对象的理解

1.首先需要知道另外一个概念,面向过程。

面向过程的代表就是C语言,C语言注重实现的过程,面向对象注重谁去实现的,实现的结果如何。这里就说说我自己理解的面向过程是啥。
举一个生活中的场景,洗衣服。面向过程的洗衣服就是要去关注洗衣服的这个东西是什么,怎么洗的。就比如说,世界上伟大的母亲多多少少都会为自己的儿女洗衣服,面向过程就会去关注妈妈怎么洗衣服的,左手右手慢动作什么的。对应到代码就是:

public static void main(String[] args) {
        	String powder = "洗衣粉";// 需要加入洗衣粉
        	String waterCapacity = "水的量"// 需要加入的容量
        	String container = "洗衣容器"// 洗衣机或者脸盆啥的
        	AddPowder(powder);// 加入洗衣粉
        	AddWater(waterCapacity);// 加入水
        	PutIntoContainer(container);// 加到洗衣机容器
        	Wash();
        	System.out.println("洗衣结束"); 
    	}
    	public void AddPowder(String powder){
    		//do somthing.......
    	}
    	// 后面的方法就不定义了。。。。。太多了,这只是第一次写洗衣。后面几次你都要这么写,疯掉。。。。。

所以面向过程他所解决的是一件事物的纵向处理方式,例如加洗衣粉的操作,也许你需要放两次,但是你这时候没有把这个过程写成方法,那么你重复的代码就要写两次,但是如果你把他写成方法了,你就少了一倍的代码量,这是面向过程解决的事情。但是,我第二天也要洗衣服,我要把整个过程再来一遍,蓝瘦。于是乎就有了面向对象。

2. 面向对象的具体解释

丑话说到前头,这是我本人对面向对象的理解,如有不对欢迎指正。
刚刚上面讲到解决第二天洗衣服需要使用面向对象的方法,什么意思呢,其实刚刚那么多方法在面向对象这几行代码就写完了。

WashCloth washCloth = new WashClth();// 定义洗衣服的对象,我管你是谁,我给你处理了。
washCloth.wash();// 调用洗衣服方法,怎么洗我也不care,告诉结果就行。
// 很明显看的出来,非常简洁,产品经理和程序员的既视感好吧。。。。。。。俗话说的好,没女盆友就new一个也不是没有道理的。因为省事!

怎么操作呢。肯定要定义一个洗衣类,里面定义了之前代码里写的所有方法已经用到的物品。这些物品就是这个类的属性。如下:

/*
 * class:WashCloth.java
 * auth:pankc
 * remark:
 * Date:2022-27-27 13:27:31
 */

package Entity;

public class WashCloth {
    String powder;
    String waterCapacity;
    String container;

    public String getPowder() {
        return powder;
    }

    WashCloth(){
        System.out.println("洗衣服开始......");
    }
    
    public void setPowder(String powder) {
        this.powder = powder;
    }

    public String getWaterCapacity() {
        return waterCapacity;
    }

    public void setWaterCapacity(String waterCapacity) {
        this.waterCapacity = waterCapacity;
    }

    public String getContainer() {
        return container;
    }

    public void setContainer(String container) {
        this.container = container;
    }
    public void AddPowder(String powder){
        System.out.println("洗衣粉牌子是"+powder+"。");
    }
    public void AddWater(String waterCapacity){
        System.out.println("用了"+waterCapacity+"升的水。");
    }
    public void PutIntoContainer(String container){
        System.out.println(container+"洗的。");
    }
    
    public void Wash(){
        this.PutIntoContainer(this.container);
        this.AddPowder(this.powder);
        this.AddWater(this.waterCapacity);
        System.out.println("洗衣结束。。。。。。。");
    }
    
    
}
像这样,就不担心每天洗衣服要重新再写一遍了,舒服。所以说啊面向对象其实就是解决事情横向发展的思想。
假如哪天有人问你洗衣服怎么洗的。
答:先把衣服放到洗衣机里,加入洗衣粉,加入水等等。。。。。。(面向过程)
答:洗衣机洗的。(java高手好吧。)


总结

其实在面试时如果遇到这个问题,还是先把官方解释说下,再加上这个洗衣服的例子说上会更加分,我能有什么坏心思呢,我只是想读到这篇文章的人能够更加理解什么是面向对象。通过这个思想,生活中面向对象的例子比比皆是,像洗衣服这样的真是信手拈来,只要存在雇佣关系必然存在面向对象!因为技术来自于生活。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值