• 面向对象(一)


    ---------------------- QQ:371524846  期待与您交流! ----------------------

    一、面向对象和面向过程

      面向对象:
        面向对象是相对面向过程而言。所以说:面向对象是基于面向过程的。
      面向对象和面向过程都是一种思想。
      面对过程:
        强调的是功能行为。
      面向对象:
        将功能封装进对象。
      面向对象的三个特征:封装、继承、多态。
      以后开发:其实就是找对象使用,没有对象,就创建一个对象。
      找对象,建立对象,使用对象,维护对象的关系。

      耦合:类与类的关系。
      内聚:就是自己实现功能的能力。
      一般开发都要做到,低耦合,高内聚。

      基本数据类型的传递:
        形参的改变对实参没有影响。
      引用数据类型的传递:
        形参的改变直接影响实参。


    二、类和对象的关系

      类:将一组对象的公共属性和行为进行抽象,并加以描述的结果。类是对象的抽象化,概括出来的产物。
      对象:就是这类事物,实实在在存在的个体。
      对象是类型的具体(个体)化,实例化。
      描述事物,其实就是在描述事物的属性和行为。
      属性对应的是类中变量,行为对应的是类中的函数(方法)。
      :属性:又叫成员变量、成员属性、对象变量、对象属性、实例变量、实例属性。
      属性的定义是被类体直接包含的。属性是类的成员之一!
      eg:
      class Person {
        String name;
        int age;
        String sex;
      }

      其实定义类,就是在描述事物,就是在定义属性和行为,属性和行为共同成为类中的成员(成员变量和成员方法)。
      注意:只在问题内抽象

      定义对象的语法: 类名 对象名 = new 类名();
      从上面这个语法可以看出类有两个作用:定义对象,定义实体。


    三、匿名对象的使用

      eg:
        Person p = new Person();
        p.display();
        new Person().display();
      匿名对象只能使用一次,所以如果你创建的对象只是想使用一次的话,那么可以使用匿名对象。

      使用匿名对象可能还会用来调用函数。
      eg:
        fun(new int[]{1,2,3});
        fun(new Person());

    四、成员变量和局部变量区别):

      作用范围:
        成员变量作用于整个类中;
        局部变量作用于函数中,或者语句中。

      在内存中的位置:
        成员变量:在堆内存中,因为对象的存在,才在内存中存在。
        局部变量:存在栈内存中。

    五、封装(Encapsulation):

      1.封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
        好处:将变化隔离;便于使用;提高重用性;提高安全性。

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

      3.Time类说明封装性(hour、minute、second)
        要求:所有的属性都必须是private、方法是public、类也是public
        要求:为所有的属性添加getter/setter,即访问器和设置器。
        如果属性名字叫name,那么它的getter/setter方法名字分别是:getName()、setName()
        其实getName有返回值,但没有参数;
        setName()没有返回值,但有参数。
      4.使用private完成封装,使用public提供公有访问接口,即让属性私有,提供公有getter/setter


      成员访问权限比较:

                权限大小

          成员修饰符 public  protected   default(默认)    private

        同一个类中 OK      OK      OK         OK

        同一个包中 OK      OK      OK         NO

        子类访问  OK      OK      NO         NO

        不同包中  OK      NO      NO         NO



    六、 构造函数

      (1) 特点:
        a.函数名与类名相同;
        b.不用定义返回值类型; (定义时的特点)
        c.不可以写return语句。
        d.只能使用new来调用。(是调用时的特点)
      作用: 给对象进行初始化(通常这么用).
      注意: 多个构造函数是以重载的形式存在的。
      (2) 默认构造函数
        当一个类没有构造函数时,编译器会为这个类添加一个public的,而且
        是无参、还无内容的构造器。

      匿名调用对象的属性没有意义,调用功能(方法)有意义。

    七、this 关键字

      (1) this 用法一: 看上去,适用于区分局部变量和成员变量同名情况。
      【this为什么可以解决这个问题?this 到底代表的什么?】
      this:就代表本类的对象,到底代表哪一个呢?
      this代表它所在函数所属对象的引用。
      简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
      this 用法二:用于构造函数之间进行互相调用。

      (2) 注意:this调用语句,必须是在构造函数中的第一行,而且只能在构造函数中使用。

    ---------------------- QQ:371524846 期待与您交流! ----------------------

  • 相关阅读:
    STDMETHOD (转)
    DirectX中的纹理映射相关技术 (转)
    (转)清空std::stringstream,联系到stream的clear()和清空
    (转载)MultiAnimation
    (转)SkyBox
    [转载]漫谈游戏中的阴影技术
    反射矩阵计算
    (转)COM组件里的AddRef()
    LINQ简记(2):重要概念
    继续聊WPF——自定义命令
  • 原文地址:https://www.cnblogs.com/Lt-Java13/p/3261957.html
Copyright © 2020-2023  润新知