• 面向对象


    面向对象三大特征:

    1):封装

    封装是指将对象的实现细节隐藏起来,然后通过公共的方法来向外暴露该对象的功能。

    2):继承

    继承是面向对象实现软件复用的重要手段,当子类继承父类后,子类是一种特殊的父类,能直接或间接获得父类里的成员。

    3):多态

    多态是可以直接把子类对象赋给父类变量,但是运行时依然表现子类的行为特征,这意味着同一类型的对象在运行时可能表现出不同的行为特征。

    什么是抽象:从特定的角度出发,从已经存在的一些事物中抽取我们所关注的特性,行为,从而形成一个新的事物的思维过程,是一种从复杂到简洁的思维方式。

    对象是类的实例,类是对象的模版

    什么是对象:

    对象是人们要进行研究任何事物,一切事物都可以认为是对象

    对象具有状态和行为:

    对象具有状态,比如姓名,年龄,性别等

    对象具有操作,比如吃饭,睡觉,写代码等

    什么是类:

    具有相同特性(状态)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例就是对象,类实际上就是一种数据类型。

    类具有特性,对象的状态,用成员变量来描述,封装数据。

    类具有功能,对象的行为,用方法来描述。

    定义类的注意事项:

    1):如果类使用类public修饰符,必须保证当前文件名称和当前类名相同。

    2):类名使用名称表示,类表示某一类事物,首字母大些,如果包含多个单词,用驼峰表示法。

    3):在面向对象的过程中,定义类的时候,专门为描述一个对象提供一个类,不需要main方法。

    根据类来创建对象的语法:

    类名 变量 = new 类名();

    对象的比较操作:

    ==号:对于基本数据类型来说,比较的是值

    对于引用类型数据来说,比较的是在内存中的地址值。

    每次使用new关键字,都表示在堆值中开辟一块存储空间,不同的存储空间,地址不同。

    对象的声明周期:

    对象的出生:每次使用new关键字的时候,就会在内存开辟新的空间,此时对象开始存在

    对象的结束:当堆中的对象没有被任何变量所引用,此时该对象就成了垃圾,就等着GC来回收该对象,当被回收的时候,对象就被销毁,释放更多的内存空间。

    匿名对象:没有名称的对象,创建对象之后没有赋给某一个变量。new Servant();//匿名对象,只是在堆中开辟一块新的内存空间,但是没有把该空间地址赋给任何变量。因为没有名称,匿名对象仅仅只能使用一次。一般的把匿名对象作为方法的实参传递。

    构造器(构造方法):如果我们没有显示提供构造器,编译器在编译源文件的时候,会创建一个缺省的构造器;如果我们显示定义了一个构造器,则编译器不再创建缺省构造器。所以一个类至少存在一个构造器。

    构造器的作用:

    1):创建对象,但是必须和new一起使用。

    2):完成对象的初始化操作。

    构造器的特点:

    1):构造器的名称和当前所在类的名称相同。

    2):禁止定义返回类型,void也不能用,返回类型和所在类名相同,所以不用写。

    3):不需要使用return语句。虽然构造器是有返回值的,返回的是当前创建对象的引用。

    编译器创建的默认构造器的特点:

    1):符合构造器的特点

    2):无参数的

    3):无方法体的

    4):如果类A没有使用修饰符,则编译器创建的构造器也没有修饰符;若使用了,则也有修饰符。

    static修饰符表示静态的,可修饰字段,方法,内部类,其修饰的成员属于类,也就是说static修饰的资源属于类级别,而不是对象级别。

    static的真正作用:用来区别字段,方法,内部类,初始化代码块是属于对象还是类本身。

    static修饰符的特点:

    1):static修饰的成员(字段/方法),随着所在类的加载而加载,当jvm将字节码加载进去的时候,static修饰的成员已经在内存中存在了。

    2):优先于对象的存在。对象是我们手动通过new关键字创建出来的。

    3):static修饰的成员被该类型的所有对象所共享。根据该类创建出来的任何对象,都可以访问static成员。但是访问的时候表面上是通过对象访问,其本质依然使用的是类名访问的,和对象没有任何关系。

    4):因为static修饰的成员直接属于类不属于对象,所以可以直接使用类名访问static成员。

     

  • 相关阅读:
    OOP侧边分享按钮
    表格基础操作
    行为型模式之自定义语言的实现(解释器模式)
    行为型模式之请求发送者与接收者解耦(命令模式)
    行为型模式之请求的链式处理(职责链模式)
    Http、Socket、WebSocket之间联系与区别
    日期时间工具类DateTimeUtil(基于Java8的LocalDateTime)
    结构型模式之代理模式
    Java8 函数式接口@FunctionalInterface的使用说明
    结构型模式之实现对象的复用(享元模式)
  • 原文地址:https://www.cnblogs.com/falling/p/7987876.html
Copyright © 2020-2023  润新知