接口

目录:

接口

接口定义的语法

接口作用:

内部类

局部内部类

匿名内部类

枚举

jar命令

为什么要制作 JAR 包

接口:

        接口的作用是非常丰富,接口是往往和设计模式结合在一起的。

        接口的概念:  —  可以认为接口是一种 “彻底” 的抽象类。

        接口:是从多个相似的类中抽取出来的一种规范。接口体现的是规范。

        接口体现的:通信规范。

        主板上各种不同类型的 “插槽” ,无论哪个厂商、无论哪个型号的主板,它们都可以与 CPU、显卡、内存进行数据通信。

        ——因为国际上有一套【公开】的 “标准”(规范),就是通过接口体现出来的。

接口定义的语法:

      [ 修饰符 ] interface 接口名

      {

             // 0~N 个Field 定义

             // 0~N 个抽象方法

             // 0~N 个内部类、内部接口、内部枚举定义

       }

      修饰符:  public 或 省略

      接口名:  多个单词连缀而成,每个单词的首字母大写

                       推荐接口用 “形容词”。

                       c# 推荐接口以 I 开头,所以后来有些Java程序员也喜欢这种方式。

【接口里的成分,都是 public  ——  因为接口体现的是【公开】的 “标准”】

    A。接口不能有构造器。也不能有初始化块。

    B。接口里的 Field ,默认有 3 个修饰符:public  static  final 

                                     无论你写还是不写,反正都有。

                  【接口里的 Field ,声明必须指定初始值

                      原因:final 修饰的类变量只能在声明时、静态初始化块中指定初始值,

                                 又由于接口不包含初始化块,所以只能在声明时指定初始值。】

   C。接口里的方法,默认有 2 个 :  public  abstract

                                     无论你写还是不写,反正都有。

              接口里的方法不可能是 static,因为接口里的方法默认有 abstract 修饰

   D。接口里的内部类、内部接口、内部枚举,默认也有 2 个修饰符:public  static 

                                    无论你写还是不写,反正都有。

   E。一个接口可以有 N 个直接父接口。

接口作用:

    A。接口可用于定义变量!

    B。接口不能直接创建实例

    C。接口最大用途就是供其他类来实现自己

    implements,实现一个或N个接口。

    当一个类实现接口之后,

            A。实现类要么为接口的所有抽象方法提供实现

                     否则你的实现类也只能是抽象类

    接口主要是在 ”面向接口编程“ 时提供更灵活的机制。

接口与抽象类之间的相似之处:

         A。都可以包含抽象方法。

         B。都不能创建实例

         C。子类继承抽象类或者实现了接口,都要求实现所有的抽象方法,

               否则子类也只能是抽象类。

接口与抽象类之间的区别:

         A。接口里只能有抽象方法,但抽象类可以没有抽象方法,只包含普通方法。

         B。接口里不能定义静态方法,但抽象类可以包含静态方法

        C。接口里的 Field 总是有 public static final 

              但抽象类中的 Field 完全可以是最普通的 Field

        D。接口不能包括构造器,但抽象类完全可以有构造器。

        E。接口不能包括初始化块,但抽象类完全可以有初始化块。

        F。接口可以有多个直接的父接口,抽象类只能有一个直接父类


简单工厂模式,命令模式。


类中的 5 种成员:

    Field

    方法

    构造器

    初始化块

    内部类/接口/枚举

  可以把接口理解成一个【完全抽象、彻底抽象】的特殊类

  枚举是一种实例数固定的类。


内部类

      — 就是把一个类放在类里面定义。

     内部类 — 寄生类       外部类 — 宿主类

        内部类,由于它的上一级程序单元是类。

                           因此它完全可以使用 private | protected | 默认 | public 这 4 个访问控制符。

                      由于内部的上一级程序单元是类。可以用 static 修饰

                           有 static 修饰的内部类,属于外部类本身。

                           无 static 修饰的内部类,属于外部类的实例。

         内部类的生成的 class 文件名字为:外部类$内部类.class

~~~~~~~~~~~~~~非静态内部类~~~~~~~~~~~~~~~~~

内部类一个好处:它可以直接访问外部类的 private 成员(包括 field/方法/构造器)

    内部类可以直接访问外部类的成员,包括 private 成员!

    反过来,外部类不可以访问内部类的成员。

    内部类,还有一个名称 ”寄生类“。

        如果是没有 static 修饰的内部类的实例,必须寄生在”外部类“ 的实例里。

        如果是 static 修饰的内部类的实例,寄生在”外部类“ 的类本身里。

    非静态内部类,也是属于非静态成员,

              —— 因为不能被外部类的静态成员所访问。

~~~~~~~~~~~~~~静态内部类~~~~~~~~~~~~~~~~~

   用 static 修饰

      static 修饰的内部类的实例,必须寄生在”外部类“ 的类本身里。

      静态内部类,也是属于静态成员,因此它不能访问外部类的非静态成员(Field 方法)

使用内部类

       A。定义变量     B。创建实例     C。访问它的类 Field / 类方法

      1. 如果在外部类的里面,使用内部类。

              并没有太多需要注意的地方

      2. 在外部类的外面,使用内部类。

            A。非静态内部类

                   声明变量:  外部类.内部类   变量名

                   创建非静态内部类的实例,在此之前,必须先创建外部类的实例 — 先建宿主

                   接下来,用    宿主.new 外部类构造器();

                   非静态内部类派生子类

.                  由于子类的构造器,必须调用父类构造器一次

                   因此必须在子类构造器中使用宿主对象去调用非静态内部类的构造器

局部内部类

匿名内部类

枚举(JDK 1.5才有)

       用于代表“实例已经固定”的类

       修饰符  enum 枚举名

       {

              // 立即在第一行列出该枚举的所有实例

       }

        - 修饰符  可以是  public | 省略、abstract | final(a  f  总有其中一个)

       所有枚举都有一个values() 方法,该方法返回所有的枚举实例

枚举类可以有 Field 、方法、构造器、初始化块、内部类

       列出枚举值,并不是简单的定义几个枚举值的变量名

       而是调用枚举类的构造器来创建相应的实例

定义枚举的方法注意点:

    jar命令

命令

为什么要制作 JAR 包







/*

补充:  对于执行“宏替换”,变量名应该多个单词连缀而成

            对于字母全部大写,单词与单词之间以下划线隔开

*/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,864评论 6 494
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,175评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,401评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,170评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,276评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,364评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,401评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,179评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,604评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,902评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,070评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,751评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,380评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,077评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,312评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,924评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,957评论 2 351

推荐阅读更多精彩内容