zoukankan      html  css  js  c++  java
  • Java学习 · 初识 面向对象深入二

    面向对象深入

    1. 1.            抽象类

    a)     声明

                      i.           抽象方法和抽象类必须用abstract来修饰

                    ii.           没有方法体,不需要实现

    b)    定义

                      i.           抽象方法的类只能定义抽象类

                    ii.           抽象类中不一定全都是抽象方法

    c)     使用

                      i.           抽象类中可以包含属性、方法、抽象方法

                    ii.           不能实例化

                  iii.           只能用来继承

                  iv.           子类必须覆盖所有抽象方法,否则子类还是抽象类

     

    1. 2.            接口 interface

    a)     定义

                      i.           接口就是比抽象类还抽象的抽象类

                    ii.           接口就是规范,定义的是一组规则

                  iii.           实现了规范和实现的分离

    b)    接口的相关规则

                      i.           所有方法都是抽象的

                    ii.           变量默认为public static final

    c)     使用

                      i.           可以定义一个接口,用extends继承了一个接口

                    ii.           可以定义一个类,用implements实现一个接口

                  iii.           可以定义一个抽象类,用implements实现接口的部分方法

    d)    定义格式

                      i.           [访问修饰符] interface 接口名 extends 父接口

    1. 常量定义:public static final
    2. 方法定义: public abstract

    e)     如何实现接口

                      i.          

    1. 3.            内部类

    a)     定义

                      i.           将一个类定义置入另一个类定义当中

    b)    特点

                      i.           可以访问外部类的成员(包括private成员),反之不行

                    ii.           可声明为,public default protected private

                  iii.           编译后生成两个类,OuterClass.class OuterClass$InnerClass.class

    c)     分类

                      i.           匿名内部类 Anonymous

    1. 可以实现一个接口,或继承一个父类
    2. 只能实现一接口
    3. 适合创建一次性使用的类,不能重复使用,在GUI编程中常见
    4. 4.            Lambda表达式

    a)     作用

                      i.           传递一个反复使用的代码块(在使用函数式接口时使用

    b)    语法

                      i.           (参数,参数)->{代码块}

    c)     函数式接口

                      i.           定义:只有一个抽象方法的接口

    d)    三种引用

                      i.           方法引用

    1. Object::instanceMethod
    2. Class::staticMethod
    3. Class::instanceMethod

                    ii.           构造器引用

    1. 类型::new

    e)     变量作用域

                      i.           Lambad表达式总是捕获最终对象

  • 相关阅读:
    由js apply与call方法想到的js数据类型(原始类型和引用类型)
    ajax跨域
    悟透JavaScript(理解JS面向对象的好文章)
    Item 18: Understand the Difference between Function, Method, and Constructor Calls
    torch:hardsigmoid
    torch:CrossEntropy是个构造器,所以loss = torch.nn.CrossEntropyLoss()(output, target)这么写就对了
    检查运行文件名称与模块名称是否重复。如果重复,需要将文件名称重新命名。
    a = np.r_[1:4,0,4] 这语法有点神奇
    lstm官方demo,有好几种输出的shape
    np.c_ 这个玩意儿不是个方法,而是返回一个类然后直接和后面的ndarry相乘。。。相当于concatenate(【】,dim)
  • 原文地址:https://www.cnblogs.com/secoding/p/9497762.html
Copyright © 2011-2022 走看看