java面向对象的概要

面对对象
    1.面对对象三大特征
        1.封装
            1.1 权限封装
                权限 可见度      同包同类          同包异类         异包子类         异包异类  
                public            ok                ok                ok                ok
                protected        ok                ok                ok                no
                default(包权限)    ok                ok                no                no
                private            ok                no                no                no
            1.2 数据封装
                实体类get/set 
                    viewObject        视图模型类 
                    ModelObject        数据模型类
                    Dto类            数据传输对象
                    
                    最初只是封装属性
                    方法的参数和返回值也可以使用实体类进行封装
            1.3 包封装
                Java中的包就是文件夹
                使用文件夹的层数和名称进行类文件的封装
                包名用点分割
                包一般最少3层 最多不超过7层
                包名的前两层 是你们公司域名的倒置
                com.njbdqn
                第3层是项目名称 (迷你工程、练习)
                com.njbdqn.myfirst
                第4层是模块的名称(正常多人开发的工程 最常见的包)
                com.njbdqn.myfirst.ordermode
                第5层是接口实现(实现四层包中的功能接口的下层包)
                com.njbdqn.myfirst.ordermodel.impl
                第6层是中间件层(容器层)--半架构师
                第7层是容器的链路层---petshop
                
                防止类名冲突
                
            1.4 接口封装 (广义封装)
                --项目经理 架构师
                interface
                模块接口
        2.继承
            2.1 继承与组合的区别
                    组合是将 一方的类作为另一方的属性存在 是一种弱依赖关系 (推荐)
                    继承 使用 extends 子类继承父类中的 public和protected的属性和方法 不用重复去造轮子 子类如果要
                         调用父类的属性或方法一般使用super关键字
            2.2 继承的单根性
                    Java的继承只能单根继承
        3.多态
            3.1 多态在代码中的表现
                3.1.1 重写
                    在继承关系的类中 子类的方法与父类的方法一样(参数列表一样,方法名一样,返回值一样,子类的权限大于等于父类的权限) 而且
                    子类实现了与父类相同方法的不能功能
                3.1.2 重载
                    在同一个类中 方法名一样 参数列不一样(参数个数不一样,参数类型不一样,参数类型的次序不一样) 
            3.2 上下转型问题
                将子类对象存放在父类的对象中 JVM的类型判断实际上还是子类对象 不可乱转
                将方法的参数使用父类做形参,传入的时候使用任意一个子类做实参  也是一种上转型
            拆箱和装箱 (衍生问题) C#
                将非对象的元素转为对象元素
                Integer,Double,Long(包装类)    
                
    2. 特殊关键字
        2.1 final(最终)
            2.1.1 final 使用在类前面 表示该类为最终类 不能继承
            2.1.2 final 可以用在方法前 表示该方法在子类中不允许重写
            2.1.3 final 可以使用在属性前 表示该属性为常量属性
            
            注:final定义的变量 在内存中一般存在常量池中
        2.2 static(静态) 
            2.2.1 static 可以使用在属性前 代表该属性是本类中所有对象公用的独一无二的属性     (类属性)
            2.2.2 static 可以使用在方法前 代表同上                                            (类方法)
            2.2.3 static 代码块 静态代码块 这种代码块优先于构造器先执行 并且只执行一次
        2.3 this(代指当前对象)
            注:对象是类的具象化实现 类是对象的高度抽象
    3. 抽象
        3.1 抽象类 (使用时机)
            使用时机:如果多个类中有同样的方法则把这些方法提取到父类中 ,且多个类中有方法原型相同但内容不同的
                     则将这些方法在父类中构建抽象方法 并把父类变成抽象类
            注:抽象类中有可能有抽象方法 所以抽象类不能直接new
        3.2 接口 (使用时机)
            使用时机:解耦 (规则化 约束)
    4. 异常和日志
        4.1 主动抛出和被动捕获
        4.2 log4j

python+opencv简谱识别音频生成系统源码含GUI界面+详细运行教程+数据 一、项目简介 提取简谱中的音乐信息,依据识别到的信息生成midi文件。 Extract music information from musical scores and generate a midi file according to it. 二、项目运行环境 python=3.11.1 第三方库依赖 opencv-python=4.7.0.68 numpy=1.24.1 可以使用命令 pip install -r requirements.txt 来安装所需的第三方库。 三、项目运行步骤 3.1 命令行运行 运行main.py。 输入简谱路径:支持图片或文件夹,相对路径或绝对路径都可以。 输入简谱主音:它通常在第一页的左上角“1=”之后。 输入简谱速度:即每分钟拍数,同在左上角。 选择是否输出程序中间提示信息:请输入Y或N(不区分大小写,下同)。 选择匹配精度:请输入L或M或H,对应低/中/高精度,一般而言输入L即可。 选择使用的线程数:一般与CPU核数相同即可。虽然python的线程不是真正的多线程,但仍能起到加速作用。 估算字符上下间距:这与简谱中符号的密集程度有关,一般来说纵向符号越稀疏,这个值需要设置得越大,范围通常在1.0-2.5。 二值化算法:使用全局阈值则跳过该选项即可,或者也可输入OTSU、采用大津二值化算法。 设置全局阈值:如果上面选择全局阈值则需要手动设置全局阈值,对于.\test.txt中所提样例,使用全局阈值并在后面设置为160即可。 手动调整中间结果:若输入Y/y,则在识别简谱后会暂停代码,并生成一份txt文件,在其中展示识别结果,此时用户可以通过修改这份txt文件来更正识别结果。 如果选择文件夹的话,还可以选择所选文件夹中不需要识别的文件以排除干扰
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值