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

    1、类与实例
    对象是一个自包含的实体,用一组可识别的特性和行为来标识。
    类就是具有相同的属性和功能的对象的抽象的集合。
    2、实例化

    实例,就是一个真实的对象。比如我们都是“人”

    实例化就是创建对象的过程,使用new关键字来创建。

    Cat cat = new Cat();将类Cat实例化 ,其实这几句代码做了两件事

    Cat cat;声明一个Cat的对象,对象名为cat

    cat = new Cat();将此cat对象实例化
    3、构造方法

    比如希望每个小猫一诞生就有姓名,那么就应该写一个有参数的构造方法。

    构造方法,又叫构造函数,其实就是对类进行初始化。构造方法与类同名,无返回值,也不需要void,在new 时候调用。

    所有类都有构造方法,如果你不编码则系统默认生成空的构造方法,若你有定义的构造方法,那么默认的构造方法就会失效了。

    初始化:初始化就是把变量赋为默认值,把控件设为默认状态,把没准备的准备好。初始化在计算机编程领域中指为数据对象或变量赋初值的做法

    4、方法重载
    方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参数类型。构造方法、普通方法都可以实现重载的。
    方法重载时,两个方法必须要方法名相同,但参数类型或个数必须要有所不同。可在不改变原方法的基础上,新增功能

     5、属性与修饰符

    属性是一个方法或一对方法,但在调用它的代码看来,它是一个字段,即属性适合以字段的方式使用方法调用的场合。

    属性有两个方法get和set。

    字段是存储类要满足其设计所需要的数据,字段是与类相关的变量。

    private String unit;//字段

    public String getUnit() {//get属性
    return unit;
    }

    public void setUnit(String unit) {//set属性
    this.unit = unit;
    }

    public公有的,private私有的
    通常字段都是private私有的,而属性都是public公有的

    class Cat{

       private  int shouNum =3;//声明一个私有的字段,默认值是3

      public int ShoutName{

        get{//表示外界调用时可以得到shoutNum的值

          return shoutNum;

        }

        set{//表示外界可以给内部shoutNum赋值,set访问器没有显示设置参数,但它有一个隐式参数,用关键字value表示

          shoutNum = value;

        }

      }

    }

    Cat cat = new Cat();

    cat.ShoutName = 5;//此时调用的是属性,value隐式参数=5

    6、面向对象的特性

    6.1、封装

    每个对象都包含它能进行操作所需要的所有信息,这个特性称为封装,因此对象不必依赖其他对象来完成自己的操作。

    封装的好处:

    第一、良好的封装能够减少耦合,第二、类内部的实现可以自由地修改,第三、类具有清晰的对外接口。

    6.2、继承

    在讲继承之前,先谈谈IS--A与 Has-a 区别:

    IS--A基于类继承或接口实现,IS-A是表达这句话的一种方式:“这个东西是那个东西的一种”。例如:野马是一种马。(是一个)
    HAS-A关系是基于用法(即引用)而不是继承。换句话说,如果类A中的代码具有对类B实例的引用,则“类A HAS-A类B”。例如:马有缰绳。(有一个

    “is-a”代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机。PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性。因此在用Java语言实现时,应该将PC机和工作站定义成两种类,均继承计算机类。
    “has -a”代表的是对象和它的成员的从属关系。同一种类的对象,通过它们的属性的不同值来区别。比如一台PC机的操作系统是Windows,另一台PC机的操作系统是Linux。操作系统是PC机的一个成员变量,根据这一成员变量的不同值,可以区分不同的PC机对象。

    对象的继承代表了一种“is-a”的关系,如果两个对象A和B,可以描述为“B是A”,则表明B可以继承A。

    继承者还可以理解为是对被继承者的特殊化,因为它除了具备被继承者的特性外,还具备自己独特的个性。

     继承定义了类如何相互关联,共享特性。继承的工作方式是:定义父类和子类,或叫做基类和派生类,其中子类继承父类的所有特性。子类不但继承父类的所有特性,还可以定义新的特性。

    如果子类继承与父类,第一、子类拥有父类非private私有的属性和功能;第二、子类具有自己的属性 和功能,即子类可以扩展父类没有的属性和功能;第三、子类还可以以自己的方式实现父类的功能(方法重写)。

    父类中的构造方法不能被继承,只能被调用。

    继承的优点:不用继承的话,如果要修改功能,就必须在所有重复的方法中修改,代码越多,出错可能就越大,而继承的优点是,继承使得所有子类公共的部分都放在了父类,使得代码得到了共享,这就避免了重复,另外,继承可以使得修改或扩展继承而来的实现都较为容易。
    继承的缺点:那就是父类变,则子类不得不变。继承会破坏包装,父类实现细节暴露给子类。增大了两个类之间的耦合性,继承显然是一种类与类之间强耦合的关系。
    6.3、多态

    多态表示不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行。

  • 相关阅读:
    postgreSQL入门命令
    JDBC连接数据库
    nano编辑器使用教程
    Linux上vi(vim)编辑器使用教程
    【编程思想】【设计模式】【行为模式Behavioral】状态模式State
    【编程思想】【设计模式】【行为模式Behavioral】Specification
    【编程思想】【设计模式】【行为模式Behavioral】registry
    【编程思想】【设计模式】【行为模式Behavioral】Publish_Subscribe
    【编程思想】【设计模式】【行为模式Behavioral】观察者模式Observer
    【编程思想】【设计模式】【行为模式Behavioral】备忘录模式Memento
  • 原文地址:https://www.cnblogs.com/ccgjava/p/6743046.html
Copyright © 2011-2022 走看看