黑马程序员_Java基础[7]_面向对象、类、对象、匿名对象

时间:2023-02-14 12:11:11
---------- android培训 java培训、期待与您交流! ----------

-

面向对象

我的理解里,

其实我们很多时候都做着面向对象的事情,只不过不这么叫,没有这个说法而已,
比如我们去餐厅吃饭,就是面向对象,我们只需要点餐,过一会,需要的东西都齐全了,我们就是在面向对象,只不过我们在日常生活没有这个意识。
我认为我们回家自己做饭,就是面向过程,我们需要自己买菜,洗菜,切菜,做菜,最后才能有一桌菜吃,这个时候我们必须步步到位,经历每一个过程。

对象就是实体,对象就是实实在在拥有某些大范围下的属性和功能的实体,这个大范围就是叫类。
类是抽象的,对象是具体的,比如自行车,,他们都有*,有把手,能跑,这是一个大类,
而我的山地自行车就是一个实体,一个对象。它的把手,*怎么来的我不知道,怎么跑的,原理我也不知道,也不需要知道。

刚刚有说道吃饭,吃饭就需要做饭,做饭得用电饭煲,一想到电饭煲,就能想到各种样子的电饭煲,
都是差不多大小,有个盖子,能装米,都具有煮饭这么一个功能等等。而这就是一个类,电饭煲类,抽象的。
而实体是什么,就是具体的某一个电饭煲。
面向对象的好处就是,我只需要把米放进电饭煲,一会就熟了。方便,省事。谁都可以操作,不需要知道其工作原理。
再联想到传统做饭,应该就是面向过程了,比如小时候家里用木材生火做饭,先点火,然后下米,然后继续舔火,中途得搅几次米,
然后“立米”,然后放上“蒸子”,然后放上米,继续舔火,到米饭熟了为止。
这个过程,麻烦,而且人必须事事到位。
而电饭煲就无需如此,它把如何做饭如何熬粥的功能都封装在里面了,无论你想煮饭,还是熬粥,只需要通过电饭煲的一个按钮,
就能调用它的相关功能。

作为我们21世纪的人群,很多都玩过游戏,游戏里一般有三五种角色,有不同的技能,
按狭隘点的想法,其实拥有相同技能的角色,在这里也可以划分为一个类,具体对象就是创建的角色,释放技能就用相应的角色来实现,
而在游戏里,在代码里,他是如何实现这个技能的,其实这就是封装,把不同的技能封装给不同的类,具体的对象就拥有相应的技能,
其实,角色都有共同点他们也是一个对象,技能也有共同点,他们也是一个对象,

在开发一个项目的时候,如果能先写出文案和接口,我的理解来说,罗列出所有对象,和其拥有的方法、接口,我想这个项目已经完成了一半,
剩下的就是功能的实现,而做这些的前者远远少于后者,所以有了项目经理和普通编程人员两个不同薪水的职位,这,又是两个对象吧,项目经理都拥有宏观意识
思考问题的角度不同于编程人员,而编程人员的共同点就是能够去实现项目经理给出的各种功能,至于具体怎么实现,
这就不是项目经理需要过问的,经理只要分配任务,然后收集成果进行全局调控。
其实能分门别类的东西太多了,遍布我们的生活中,只是以前没有这一层的认识、意识。
这也是时代和科技,思想和文明的进步。作为没有文凭,没有好家庭,没有父母支持的我只能加油努力学习,希望能有一个机遇,做一个能面向对象的高级职业


【【【笔记开始】】】:
面向对象的三大特征:封装,继承,多态。


开发其实就是找对象使用,没有对象,就创建一个对象
找对象,建立对象,使用对象,维护对象的关系。

(这种思维的转换和应用到程序上有一个过程)

现实生活中实物的描述【有共同属性和行动的一类。】,是抽象的。
对象就是这类实物,实实在在的个体。

在java中,
就是定义的类,共同的属性就是成员变量。
              具有的行动,就是方法。
而实体,就是new出来的 具体的对象

public class car{
    string name;//属性,即成员变量。
    string color;
    int money;
    public void run(){
        System.out.println("汽车能跑");
    }
}
public static void main(String []args){
    car c=new car();//c就是一个类型变量,car类的。类类型变量指向对象
    c.name="法拉利";//赋值。
    c.color="红色";
    c.mondy=200;
    c.run();//使用它的方法,跑。

    car b=new car()//又创建一个对象。这个时候就简单方便了。
    b.name="玛莎拉蒂";
    b.color="黑色";
    b.money=700;
}
例如:汽车是一个类,有很多汽车,他们都有颜色,都有名称/型号,都有价钱,都用能跑的功能
首先我们定义了一个汽车的类,他们都有名字,颜色,都能跑等
我们调用的时候,要具体化,就通过new的方式,
这样,对象就是c,它的名字叫法拉利,颜色是红色,价钱是200,
new出来的对象名放在栈里,跟数组其实是一样的,具体内容放在堆里。通过一个地址指向。


【【匿名对象】】

后面会具体有匿名对象的使用
比如根据上面的代码:
new car().money=888;
new car().color="blue";
new car().run();

调用方法,用完在堆里就消失了,所以没有意义,
而调用方法就有意义了。

匿名对象使用方式

1:当对对象只调用一次时,可以用匿名对象来完成,这样写比较简洁


比如:           new car()


如果对一个对象进行多个成员调用,必须给这个对象起个名字。
匿名对象使用方式2:可以将匿名对象作为实际参数进行传递。


比如:            show(new car());





---------- android培训、 java培训、期待与您交流!----------
黑马官网: http://edu.csdn.net/heima