第三周总结---------面向对象总结

生活中的面向对象和面向过程
    面向对象:
        找合适的人,做合适的事
    面向过程:
        亲力亲为,自力更生,所有的过程都是经历

类:
    统称的概念   对于一类事物的统称,包含对于属性描述和行为描述
对象:
    唯一的       具体的,独立的,唯一的个体

格式:
    class 类名 {
        属性描述;
        行为描述;
    }
类名:
    要求符合大驼峰命名法,见名知意
    类名这里可以认为是一个数据类型名,自定义数据类型

创建对象的格式:
    类名 对象名 = new 类名();

操作类内的成员变量格式:
    类对象.成员变量名 可以赋值操作,可以取值操作
使用成员方法格式:
    类对象.成员方法(所需参数);


构造方法:  Constructor
    作用:
        用于初始化创建对象的成员变量数据 
    
    格式:
        public 类名(所需初始化参数列表) {
        初始化语句;
    }
    细节:
        1. 构造方法的名字必须是类名,并且其他方法的名字不能是类名
        2. 构造方法没有返回值类型声明
        3. 初始化参数列表和正常的方法列表操作使用一致
        4. 初始化语句,大多数是都是一些赋值语句
    
     强制要求:
        无论什么时候,一定要给当前类提供一个无参构造方法!

    在Java代码中不允许出现相同数据类型,个数,顺序的构造方法,和参数名没关系,Java编译器选择过程中,有且只针对数类型,个数,顺序选择,参数名真的无所谓。

this关键字:
    this关键字表示对象本身
        1. 调用当前方法的类对象
        2. 通过构造方法创建的类对象

         this表示一个对象!!!当前对象!!! 
    目前解决问题在方法中区分操作的是成员变量还是局部变量


面向对象三大特征:
    封装
        最基本的思想
    继承
        子承父业,你长得真的像你父母
    多态
        猫,狗,都是动物
        U盘,键盘,鼠标,都是USB设备
        【最难的是多态,最简单的也是多态】

Java中规范化封装【JavaBean规范】
    要求:
        1. 所有的成员变量全部私有化【private修饰】
        2. 要求至少完成一个无参数构造方法,其他无所谓
        3. 要求给予所有的成员变量对应的setter和getter方法

private权限修饰符:
    私有化内容,使用private修饰的成员变量,成员方法和构造方法,有且只能类内使用,类外没有操作权限。

    使用private修饰的内容有且只能在class所处大括号以内使用

public
    公开内容,只要存在对应的类对象,都可以通过类对象调用类内的public修饰的成员变量和成员方法

解决私有化成员变量的赋值和取值操作问题
    private私有化修饰的成员变量,类外不能通过类对象操作,取值,赋值。

    JavaBean规范规定了
        setter ==> 赋值操作
        格式:
            public void set成员变量名(对应成员变量数据类型参数) {
                赋值操作;
            }
        getter ==> 取值操作
            public 对应成员变量数据类型返回值 get成员变量名字() {
                return 成员变量;
            }

    注意
        1. 方法格式固定,setter和getter方法操作过程不能修改
        2. 方法需要符合命名规范,小驼峰命名法
        3. boolean类型数据较特殊
            boolean类型的成员变量getter方法要求是is开头

JavaBean规范总结
    JavaBean规范制定的要求
    1. 要求Java中的所有实体类成员变量全部私有化,最少提供一个无参数构造方法,对应成员变量实现setter和getter方法

    2. JavaBean规范,是为了后期开发汇总更好的代码适配度,提高代码运行的统一 性,能够满足框架的使用

    3. JavaBean规范只是一个规范,而且是作为一个基础规范,操作都是可以使用快捷键来完成的!!!

多类合作总结
    汽车类和修理厂类  PC键盘类和屏幕类
    
    1. 类和对象的操作模式
        类是数据类型定义
        对象是目前操作成员方法,操作成员变量的核心

    2. 这两组代码在main方法中基本上全部是一个面向对象思想
        a. 自定义数据类型,自定义类对象,作为方法参数。
        b. 通过类对象来操作代码方式,所有的内容都是和对象相关

    3. 代码需要阅读,一定要阅读!!!
        不要断章取义!!!
        . 就是的

    4. 代码中要什么你给什么

匿名对象 
    没有名字的对象,没有对象名的对象
格式
    new 构造方法(所需参数)
用途
    1. 提高开发效率,隐形眼镜日抛,一次性筷子
    匿名对象当前行使用之后,如果没有其他引用数据类型的变量保存其地址,直接销毁
    2. 简化代码结构
    3. 通过匿名对象直接调用成员方法
    4. 使用匿名对象作为方法的参数
    5.匿名对象【禁止】使用成员变量


继承
        继承在开发中是一种抽象的归纳总结思想,剥离通用的属性,通用的方法,简化之后的开发压力。只需要在继承之后,满足个性化的实现即可。

        通过继承可以优化代码,在JavaWEB开发中,继承大多数情况下,都是用来提高方法的复用度

关键字:extends

格式:
    class A extends B {
        
    }
    A类是B类的一个子类
    B类是A类的唯一父类
    【Java是一门单继承语言,一个类有且只能继承一个父类】

总结
    1. A类使用extends关键字继承B类
        A类是B类的一个子类,B类是A类的唯一父类
    2. 继承之后,子类可以通过继承得到父类中非私有化成员变量,和非私有化成员方法

    3. 继承之后,子类不可以通过继承得到父类中的私有化成员变量,和私有化成员方法。
        private修饰的内容有且只能在类内使用!!!
    
继承带来的问题
    父类的方法不一定合适子类
    开发中父类的方法继承给子类使用,但是子类使用不太符合子类的情况,如果子类方法重新定义,重新命名,又会导致代码冗余,开发压力较大。

重新【Override】
    前提条件
    1. 重写是存在与继承中子类,或者【遵从中的实现类】
    2. 重写情况下要求子类中的方法和父类中的方法,方法声明完全一致
    3. 方法体按照子类的情况来完成
    
    注意事项
        1. 子类重写父类方法,要求必须加上@Override严格格式检查
        2. @Override会检查子类重写的方法,方法声明是否和父类一致

继承情况下:
    1. 父类的方法不符合子类的情况
    2. 需要重写的情况下,但是子类不重写没有任何的语法错误
    3. 会导致代码在实际运行阶段不符合生活逻辑和需求

【强制重写】abstract关键字

    【前提】
        abstract修饰的方法,子类必须重写

abstract使用特征
    1. abstract修饰的方法 没有方法体
    2. abstract修饰的方法,要求定义在abstract修饰的类内,或者接口interface内
    3. abstract修饰的类,你认为有没有类对象???
    abstract修饰的类内,是有可能存在abstract修饰的方法,而abstract修饰的方法是没有方法体的,如果能够得到一个abstract修饰类的对象,通过对象如何调用这些没有方法体的abstract方法。

    4. abstract修饰的类,然后呢类内没有任何的一个abstract修饰的方法,毫无意义

重载【Overload】
    要求
    1. 重载是要求在同一个类内,或者接口interface内
    2. 重载要求方法名必须一致!!!
    3. 重载要求方法的参数必须不一致!!!
    4. 重载对于方法的返回值没有任何的约束!!!
    
重载能解决的问题
    1.简化代码结构,在同一个类内同名方法功能一致,但是参数满足多样化
    2.简化程序员的开发压力
    3.能够做到统一化处理方式【后面项目中案例给大家安排】

this关键字补充
    通过this关键字调用其他构造方法
    格式:
    1. 要求在一个构造方法中,Constructor
    2. this(实际参数);
    3. 会根据实际参数的类型,个数,顺序来选择对应的构造方法。

    不能通过this关键字调用当前所在构造方法,且不能两个构造方法相互调用
    通过this关键字调用其他构造方法,必须在当前方法体的第一行!!!

super关键字
    格式:
        super(实际参数);
    会根据实际参数来选择使用父类对应数据类型,个数,顺序的构造方法,用于初始化父类的成员变量数据
    1. super关键字可以用于在子类和父类之间,同名成员变量,同名成员方法调用时明确区分。
    2. super关键字可以显式调用父类的构造方法,用于初始化父类的成员变量数据。
    3. super关键字使用的格式,规范和this非常类似。
             super关键字显式调用父类的构造方法,必须在代码的第一行

final 关键字
    最终!!!
        final关键字可以修饰
        局部变量  有且只能被赋值一次,赋值之后不可以修改           
            成员变量  定义时必须初始化,未初始化报错               
            成员方法  使用final修饰的方法为最终方法,不能被重写!!!    
            类        没有子类,不能被继承      
                  
        Java中是存在一些类是使用final修饰的          
            String类    无法被继承         
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值