zoukankan      html  css  js  c++  java
  • 面向对象

    面向对象的三大特征:封装性,继承性,多态性。

    二者之间进行比较:

      面向过程:实现某种功能时,看重每个步骤是怎么做的,整体的过程是怎样的,每个步骤都是自己亲力亲为。

      面向对象:实现某种功能时,不看重具体的过程和步骤,而是看重谁能帮我做这些事情。

      

    类与对象的关系:

      类里面有属性,有行为。

      属性:事务的特征信息,是什么

           行为:事物的动作行动方案,能做什么。

          面向对象的语言中,类就是用来模拟现实事物的,而对象是类的具体实例。

    eg:1.类:抽象的,手机设计图纸。

       2.对象:具体的,是一个真正的手机实例。

    类的定义:

      类是用来模拟现实事物的代码手段,事物分成属性,行为两个部分,类中也对应的包含两个部分。

      1.成员变量(属性):将变量位置直接定义在类中,在方法外,即为成员变量。

      2.成员方法(行为):将普通方法去掉static关键字,即为成员方法。

    根据类创建对象:

      类名称 对象名 = new 类名称();

          类似于:数据类型 变量名称 = new 数据类型();

     如何使用创建好的对象?

      类中已经定义好了两个组成部分,成员变量,成员方法所以根据类创建出来的对象也有两个部分。

    如何使用对象当中的成员变量?

      对象名.成员变量名

        note:想用谁就点谁。

    如何使用定义好的类?

      类就是一种引用数据类型,使用起来分成三个步骤:

      1.导包:如果需要使用的目标类,和当前类(含有main方法)位于同一个包下的,那么可以省略导包不写,否则需要使用import语句

      2.创建:类名称 对象名 = new 类名称();

      3.使用。

     对比一下局部变量和成员变量的不同:

      1,定义的位置不同:

       局部变量:定义在方法内。

       成员变量:直接定义在类中,在方法的外面。

      2.内存中位置不同:

       局部变量:在栈内存中,Stack

       成员变量:在堆内存中,Heap

      3.生命周期不同:

       局部变量:随着方法的进栈而出现,随着方法的出栈而消失。

       成员变量:随着对象被创建而出现,随着对象被jvm回收而消失。

      4.默认值不同:

       局部变量:没有默认值,必须赋值之后才能使用。

       成员变量:如果没有赋值,那么将会有一个默认值。

    当局部变量和成员变量重名时,方法中会根据就近原则使用局部变量但是可以使用this来区分:

      格式:this.成员变量名;作用:将局部变量和成员变量区分开来

      note:this关键字其实代表的是当前对象,通过谁调用的方法谁就是this。

    eg:

    private关键字:

      私有成员private一旦被使用修饰成员,那么超出了本类范围之外,就不能直接访问了(在无法控制成员变量取值范围,数据不安全时使用)。

      如果需要使用private修饰的成员变量,可以间接访问,使用private要写一对setter和getter,(如果是Boolean类型getxxx必须写成isXXx形式)

    构造方法:专门用来创建对象的方法,通过new关键字创建对象就是在调用构造方法。

      1,构造方法不能写返回值类型连void都不能写。

      2,构造方法的名称必须与所在类的名称完全一样,大小写也要一样。

      3,构造方法也是可以重载的。重载好处:{1:定义一个无参数的构造方法,可以直接new对象;2:定义一个重载的全参数的构造方法,可以在new对象的同时方便对成员变量进行赋值}

      4,构造方法如果没有定义,默认送一个;如果定义了,那么默认的不在赠送。

    如何定义一个标准的类(POJO类)?

      1)所有的成员变量都需要使用private关键字私有化。

      2)为每一个成员变量编写一对儿Getter和Setter方法(可以用eclipse自带的添加在source里面)。

      3)编写一个无参数的构造方法。

      4)编写一个全参数的构造方法。

  • 相关阅读:
    3. Node.js REPL(交互式解释器)
    2. npm 的使用
    hdu 6155 - Subsequence Count
    蒟蒻ACMer回忆录 · 一段弱校ACM的奋斗史
    Codeforces731F Video Cards
    Codeforces731E Funny Game
    Codeforces731D 80-th Level Archeology
    Codeforces732F Tourist Reform
    Codeforces732E Sockets
    Codeforces732D Exams
  • 原文地址:https://www.cnblogs.com/rxing/p/10425600.html
Copyright © 2011-2022 走看看