一、面向过程和面向对象

1、面向对象:Object Oriented Programming

        面向过程,强调的是功能行为,以函数为最小单位

2、面向过程:Procedure Oriented Programming

        面向对象、将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。面向对象更加强调运用人类在日常得思维逻辑中采用的思维方法与原则,如抽象、分类、继承、聚合、多态。

3、面向对象的三大特征

  • 封装(Encapsulation)
  • 继承(Inheritiance)
  • 多态(Polymorphism)

Java_面向对象概述_构造方法

Java_面向对象概述_静态方法_02编辑

二、类和对象

        万物皆为对象(万物皆可new),对象的实质是属性和行为。在我们的周围会有很多对象,例如人、书本都是对象。所谓的对象就是真实世界中的实体,对象和实体都是一一对应的,也就是说现实世界的每一个实体都是一个对象,它是一种具体的概念。

        具有相同特性和行为的对象的抽象就是类,因此对象的抽象就是类,类的具现化就是对象。所以说类是实体对象的概念模型,因此通常是笼统的、不具体的。在软件开发中,方法操作对象内部状态的改变,对象的互相调用也通过方法完成。

1、什么是对象?

        每个对象具有三个特点:对象的状态,对象的行为和对象的标识。

                1、对象的状态用来描述对象的基本特征。

                2、对象的行为用来描述对象的功能。

                3、对象的标识是指对象在内存中都有一个唯一的地址值用来和其他对象区分开来。

                4、类是一类事物的抽象,对象是具体的实现。

对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。

对象就是用来描述客观事物的一个实体。用面向对象的方法解决问题,需要对现实世界中的对象进行分析与归纳,找出哪些对象与解决问题的关联。

例如:华为手机、小米手机、苹果手机,把这些手机看成对象。

但是他们的之间具有不同特征。具体来说就是品牌、价格、性能不同。
2、什么是类?
上面所提到的手机对象之间具有一些共同的特征(属性):都有触摸屏,都有扬声器等、
还有一些共同的功能(或行为):能打电话,能拍照等。

把这些共同的特征和共同的行为组织到一个单元中,就得到类。

类是具有相同的属性和方法的一组对象集合。

类定义了对象将会拥有一些特征(属性)和行为(方法)。

类与对象的关系就如同模具和用整个模具制作出的物品之间的关系。
一个类给出了他的全部对象的的一个统一的定义,而他的每个对象则都是符合这种定义的一个实体。
因此类和对象的关系就是抽象和具体的关系。类是多个对象进行综合的抽象的结果,是实体对象的概念模型,而一个对象是一个类的实例。

3、类的定义
面向对象的设计就是一个抽象的过程。

1.发现类,类定义了对象将会拥有的特征(属性)和行为(方法)。

2.发现类的属性,对象拥有的静态特征在类中表示时称为类的属性。

3.发现类的方法,对象执行操作称为类的方法

三、构造方法

 3.1、构造概念

        构造方法是一种特殊的“成员方法”

        1.构造方法作用:

        (1)构造出来一个类的实例

        (2)对构造出来个一个类的实例(对象)初始化。

        2.构造方法的名字必须与定义他的类名完全相同,没有返回类型,甚至连void也没有。

        3.主要完成对象的初始化工作,构造方法的调用是在创建一个对象时使用new操作进行的。
        4,类中必定有构造方法,若不写,系统自动添加无参构造方法。接口不允许被实例化,所以接口中没有构造方法。

        5.不能被static、final、synchronized、abstract和native修饰。

        6.构造方法在初始化对象时自动执行,一般不能显式地直接调用.
            当同一个类存在多个构造方法时,java编译系统会自动按照初始化时最后面括号的参数个数以及参数类型来自动一一对应完成构造函数的调用。
        7.构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样,构造方法可以进行任何活动, 但是经常将他设计为进行各种初始化活动,比如初始化对象的属性

       构造方法的重载:

                                ①方法名相同
                                ②参数列表不同(类型、个数、顺序)
                                ③与修饰符返回值类型无关

        作用:构造方法支持重载,主要是方便为属性赋值。

Java_面向对象概述_初始化_03

Java_面向对象概述_构造方法_04编辑

        8.构造代码块:

               (1)作用:给对象进行初始化,对象一建立就执行,而且优先于构造函数执行

                  (2)构造代码块和构造函数的区别:构造代码块是给所有不同对象的共性进行统一初始化,构造函数是给对应的对象进行初始化

         9.自定义类中,如果不写构造方法,java系统会默认添加一个无参的构造方法。

                  如果写了一个有参的构造方法,就一定要写无参构造方法。一般情况下,我们自定义的类都要手动给出无参构造方法。

四.this关键字

    1.概念:

                表示当前对象。一般用于构造方法
   2.this的用法:
        this.属性:表示调用本类中的实例属性。
        this.方法名():表示调用本类中的实例方法。
        this()和this(实参):分别表示调用本类中的无参构造和带参构造。
        注意:this()和this(实参)必须放在构造方法中的第一行。

五、static关键字(静态)

  1.概念:
        ①静态可以修饰属性和方法。
        ②修饰属性我们称为静态属性(类属性),修饰方法称为静态方法(类方法)。
        ③静态成员是全类所有对象共享的成员,只有一份,不因创建多个对象产生多份。
        ④静态成员应该使用类名访问。
    2.调用静态方法:
        在同一个类中有多个静态方法,之间互相调用可以直接写"静态方法的名称"
        在不同类中,调用其他类的静态方法语法:类名.静态方法名称
    3.static特点 

        static是静态的意思,可以用来修饰成员变量,成员方法,代码块,内部类和导包语句
        1.静态方法可以直接访问静态成员。

        2.静态方法不能直接访问非静态成员(例:实例成员),可以通过创建对象进行访问。

        3.实例成员方法中可以this关键字,静态成员方法不可以出现this关键字。