初涉面向对象

面向对象
  
定义:
Object Oriented,OO) 黑马程序员_复习_Day03 - 九五二七 - 今天
     面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术 发展到一定阶段后的产物。
   早期的计算机编程是基于面向过程的方法, 随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。
    一切事物皆对象 ,将现实世界的事物抽象成对象, 更利于用人理解的方式对复杂系统进行分析、设计与编程。

生活中的例子:
找人帮你买电脑,那个人对电脑全部熟悉就可以,你只要提出你的要求5000元以下的,玩游戏……剩下的你就不用管了。
        上饭店吃饭,你只要点菜,菜好了给你上来,你不需要知道如何炒的。
  面向对象不是是人, 一切事物皆对象。(但面试时不要这么回答,这句话是一种境界了)
      黑马程序员_复习_Day03 - 九五二七 - 今天               黑马程序员_复习_Day03 - 九五二七 - 今天
 
类和对象的关系:
      现实生活中的对象:张三 李四。
   想要描述:提取对象中共性内容。对具体的抽象。描述时:这些对象的共性有:姓名 年龄 性别 学习java功能。
    映射到java中,描述就是class定义的类。
   具体对象就是对应java在堆内存中用new建立实体
    类就是:对现实生活中事物的描述。
   对象:就是这类事物,实实在在存在个体。

       例子.需求描述汽车(颜色,轮胎数)。描述事物其实就是在描述事物的属性和行为。
        属性对应是类中变量,行为对应的类中的函数(方法)。
        其实定义类,就是在描述事物,就是在定义属性和行为。
        属性和行为共同成为类中的成员(成员变量和成员方法)。
特点:

  1:将复杂的事情简单化。

  2:面向对象将以前的过程中的执行者,变成了指挥者。

  3:面向对象这种思想是符合现在人们思考习惯的一种思想。

  过程其实就是函数;对象是将函数等一些内容进行了封装。


成员变量与局部变量:

        成员变量作用于整个类中;存在堆内存中,因为对象的存在,才在内存中存在

        局部变量作用于函数或者语句中;存在栈内存中。

匿名类:

      黑马程序员_复习_Day03 - 九五二七 - 今天

封装

定义:

    是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

    好处:将变化隔离;便于使用;提高重用性;安全性。

    封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。

    封装就像机箱,把cpu,主板,显卡等全部放进机箱,安全,美观。

        而且对外只提供几个插孔,操作方便

private :
    用于修饰类中的成员(成员变量,成员函数)。 私有只在本类中有效。
    注意:私有仅仅是封装的一种表现形式。
    之所以对外提供访问方式,就因为可以在访问方式中加入逻辑判断等语句。
    对访问的数据进行操作。提高代码健壮性。
黑马程序员_复习_Day03 - 九五二七 - 今天

总结:在类中定义其实都称之为成员。成员有两种:

    1.成员变量:其实对应的就是事物的属性。

    2.成员函数:其实对应的就是事物的行为。

   记住:属性是用于存储数据的,直接被访问,容易出现安全隐患,

        故类中的属性通常被私有化,并对外提供公共的访问方法。

        该访问方法有两个,规范写法:属性 xxx,对应setXXX() getXXX()。

 构造函数
定义:

    用于给对象进行初始化,是给与之对应的对象进行初始化,它具有针对性,函数中的一种。

特点

    1该函数的名称和所在类的名称相同。

    2不需要定义返回值类型,不可写return语句。

    3该函数没有具体的返回值。(不同于void,void代表一种返回类型,就是没有结果返回)

    记住:所有对象创建时,都需要初始化才可以使用。

 

注意事项:一个类在定义时,如果没有定义过构造函数,那么该类中会自动生成一个空参数的构造函数,为了方便该类创建对象,完成初始化。如果在类中自定义了构造函数,那么默认的构造函数就没有了。

 黑马程序员_复习_Day03 - 九五二七 - 今天

       一个类中,可以有多个构造函数,因为它们的函数名称都相同,所以只能通过参数列表来区分。

所以,一个类中如果出现多个构造函数。它们的存在是以重载体现的。

黑马程序员_复习_Day03 - 九五二七 - 今天

普通函数胡构造函数的区别:
对象建立,构造函数只运行一次。 并且对象一建立,构造函数就运行,给对象初始化。

一般函数可以被该对象调用多次。 而且只有对象调用才执行,给对象添加对象所具备的功能。


什么时候定义构造函数呢?

         当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。

构造代码块:

         黑马程序员_复习_Day03 - 九五二七 - 今天

 
关键字:this
黑马程序员_复习_Day03 - 九五二七 - 今天

this:代表对象。就是所在函数所属对象的引用。

    在定义功能(函数)时,如果该功能内部使用到了调用该功能的对象,这时就用this来表示这个对象。

    本类功能用到本类对象时都有this。

this 还可以用于构造函数:

    格式:this(实际参数);

    this对象后面跟上 .  调用的是成员属性和成员方法(一般方法);

    this对象后面跟上 () 调用的是本类中的对应参数的构造函数。

黑马程序员_复习_Day03 - 九五二七 - 今天
不要写成this(name)=name;应该是this(name);即可,就可以完成构造函数间的调用了。

 注意:用this调用构造函数,必须定义在构造函数的第一行

      因为构造函数是用于初始化的,所以初始化动作一定要执行。否则编译失败。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值