JAVA入门笔记~基础知识day07

接口

1. 接口的概述

1.1 什么是接口

  • 接口是更加彻底的抽象,接口中只能是抽象方法和常量(JDK 1.8之前)

1.2 接口有啥用

  • 接口体现的是规范思想,实现接口的类必须重写完接口中全部的抽象方法
  • 接口体现的是一种约束思想(规范)

1.3 接口的定义格式

修饰符 interface 接口名称{
}
注意:定义接口的关键字:interface

1.4 接口中成分的特点

  • 接口中只能是抽象方法和常量
  • 接口中的抽象方法是可以省略public abstract不写,默认会加上。
  • 常量:规范是变量名称全部大写,多个单词用下划线连接,必须有值!!
    • public static final String SCHOOL_NAME = "常量值" ;
    • public static final 可以省略不写,默认会加上

1.5 接口的实现类格式

修饰符 class 实现类名称 implements 接口1,接口2,接口3...{...}
  • 接口是用来被子类实现的.类与接口是实现关系.实现接口的类叫"实现类"
  • 一个类实现了接口,必须重写完接口的全部抽象方法,否则这个类必须定义成抽象类。
  • 接口体现的是一种强制性的约束(规范思想)
  • 接口是可以被多实现的,一个类可以实现多个接口
  • 一个类实现了多个接口,必须重写完全部接口的全部抽象方法,否则这个类必须定义成抽象类

1.6 接口与接口的多继承

  • 类与类是单继承关系。 一个类只能继承一个父类。
  • 类与接口是多实现关系。一个类可以同时实现多个接口。
  • 接口与接口是多继承关系。一个接口可以继承多个接口。

1.7 JDK8之后新增方法

  • 默认方法(实例方法):必须用接口的实现类的对象访问。
    • 用 default 修饰
  • 静态方法:必须(只能)用接口的名称来访问。
    • 用 static 修饰
  • 私有方法(私有的实例方法):只能在接口中被其他方法(默认方法,私有方法)访问
    • 用 private 修饰

1.8 注意事项

  • 如果实现了多个接口,多个接口中存在同名的静态方法并不会冲突,
    • 原因是只能通过各自接口名访问静态方法。
  • 当一个类,既继承一个父类,又实现若干个接口时,(重点)
    • 父类中的成员方法与接口中的默认方法重名,子类就近选择执行父类的成员方法。
  • 当一个类实现多个接口时,多个接口中存在同名的默认方法。
    • 实现类必须重写这个方法。
  • 接口中,没有构造器,不能创建对象

代码块

  1. 代码块是类的五大成分之一(成员变量,构造器,方法,代码块,内部类)
  2. 代码块按照有无static修饰可以分为静态代码块和实例代码块
    1. 静态代码块:
      -- 有static修饰,属于当前类本身,与类一起优先加载,加载的时候会自动执行。
      -- 格式:
      static{
      }
      -- 静态代码块的作用可以在类执行方法之前进行静态资源数据的初始化操作。
      静态代码块可以与类一起优先加载,会自动触发执行
      可以用于对静态资源进行初始化操作
    2. 实例代码块:
      -- 无static修饰的,属于类的每个对象的,会与对象一起加载,每次创建对象的时候都会自动执行一次。
      -- 格式: {}
      -- 可以用于初始化实例资源的数据。
      实例代码块属于类的每个对象,会与对象一起加载并执行。
      实例代码块可以用于初始化实例资源的数据。
      拓展:
      代码其实是提取到每一个构造器中去的

fianl关键字

  1. final是最终的含义
  2. final可以修饰类,方法,变量
    • final修饰类,类不能被继承了。
    • final修饰方法,方法不能被重写。
    • final可以修饰变量的总规则:变量有且仅能被赋值一次。
      • final可以修饰局部变量
        • 这个变量的值被保护了,不能被修改了
      • final可以修饰静态变量
        • 成为常量了,值不变,只有一份,变量名称大写,下划线连接
      • final修饰静态变量
        • 可以在静态代码块赋值一次 , 或者定义的时候赋值一次。
      • final可以修饰实例变量
        • 可以在定义的时候赋值一次,可以在实例代码块赋值一次,可以在全部构造器赋值1次

单例模式

1. 含义

  • 单例模式,是一种常用的软件设计模式。通过单例模式可以保证系统中,
    应用该模式的这个类永远只有一个实例。即一个类永远只有一个对象实例。

2. 应用场景

  • 在实例开发中,有很多业务对象永远只需要一个,无论启动多少次
    我们只需要一个对象,例如任务管理对象,只需要一个。节约内存和性能。

3. 设计方法

3.1 饿汉单例模式

  • 在用类的时候,对象已经创建好了。
  • 步骤:
    a.定义一个对象,最好static和final修饰,这样这个对象永远是唯一不可变的对象了。
    b.把构造器进行私有化,外面就不能创建新对象。
    c.提供一个方法把唯一的单例对象返回出去。

3.2 懒汉单例模式

  • 你真正需要的时候,才创建一个对象。
  • 步骤:
    a.定义一个对象变量用于后面存储一个对象,此时是没有创建对象的。
    b.把构造器进行私有化,外面就不能创建新对象。
    c.提供一个方法,等需要对象的时候判断是否有一个唯一对象,如果没有创建一个对象。
    以后都是直接返回这个对象即可!!

枚举

1. 枚举是一种特殊的类型

  • 枚举类型的代表是Enum。

2. 枚举的作用?

  • 可以用于做信息分类和信息标志。

3. 定义枚举的格式

enum 枚举名称{
    // 第一行是枚举实例,相当是多个实例对象。
    }   

4. 枚举的特点:

  • 枚举类是用final修饰的,枚举类不能被继承。
  • 枚举类默认继承了 java.lang.Enum<Oritation>
  • 枚举类第一行只能罗列的是当前枚举类的对象,我们只需要申明名称即可(他们都是常量,存储的是对象)
  • 枚举相当于是多例模式,你第一行罗列了几个对象枚举就只有几个对象。
  • 枚举类的构造器默认是私有的,不能在外部创建对象。

枚举是通过这些实例的名称做信息分类。
枚举做信息分类非常严谨,可读性比较好。

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

推荐阅读更多精彩内容

  • 整理来自互联网 1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具...
    Ncompass阅读 1,537评论 0 6
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,635评论 0 11
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 1,778评论 0 10
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 2,371评论 0 4
  • 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?答:可以有多个类,但只能有一个publ...
    岳小川阅读 920评论 0 2