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