面向对象深入

  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表达式总是捕获最终对象

Java学习 · 初识 面向对象深入二的更多相关文章

  1. Java学习 · 初识 面向对象基础二

    Package 为什么需要使用package a)   解决类重名的问题 b)   便于管理类 怎么使用package a)   类的第一句非注释性语句 b)   命名:域名倒着写,再加上模块名 注意 ...

  2. Java学习 · 初识 面向对象深入一

    面向对象深入 1.面向对象三大特征 a) 继承 inheritance 子类可以从父类继承属性和方法 子类可以提供自己的属性方法 b) 封装 encapsulation 对外隐藏某些属性和方法 对外公 ...

  3. Java学习 · 初识 面向对象基础一

    面向对象基础 1.1面向过程与面向对象的区别 面向过程和面向对象二者都是思考问题的方式,再简单的事物时,可以线性思考时使用面向过程,但当事物较为复杂时,只能使用面向对象设计.但二者并不是对立的,在解决 ...

  4. Java基础-初识面向对象编程(Object-Oriented-Programming)

    Java基础-初识面向对象编程(Object-Oriented-Programming) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Java是一门面向对象的程序设计语言.那么什 ...

  5. 0025 Java学习笔记-面向对象-final修饰符、不可变类

    final关键字可以用于何处 修饰类:该类不可被继承 修饰变量:该变量一经初始化就不能被重新赋值,即使该值跟初始化的值相同或者指向同一个对象,也不可以 类变量: 实例变量: 形参: 注意可以修饰形参 ...

  6. 0030 Java学习笔记-面向对象-垃圾回收、(强、软、弱、虚)引用

    垃圾回收特点 垃圾:程序运行过程中,会为对象.数组等分配内存,运行过程中或结束后,这些对象可能就没用了,没有变量再指向它们,这时候,它们就成了垃圾,等着垃圾回收程序的回收再利用 Java的垃圾回收机制 ...

  7. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  8. 0013 Java学习笔记-面向对象-static、静态变量、静态方法、静态块、单例类

    static可以修饰哪些成员 成员变量---可以修饰 构造方法---不可以 方法---可以修饰 初始化块---可以修饰 内部类(包括接口.枚举)---可以修饰 总的来说:静态成员不能访问非静态成员 静 ...

  9. 黑马程序员——【Java基础】——面向对象(二)异常机制、包(Package)

    ---------- android培训.java培训.期待与您交流! ---------- 一.异常机制 (一)异常概述 1.异常:就是程序在运行时出现不正常情况. 2.异常类:程序在运行时,出现的 ...

随机推荐

  1. 关于spring配置文件的头部编写

    //普通spring配置文件模板1 <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns: ...

  2. iOS 文件下载及断点续传

    ios的下载我们可以使用的方法有:NSData.NSURLConnection.NSURLSession还有第三方框架AFNetworking和ASI 利用NSData方法和NSURLConnecti ...

  3. MySQL慢日志实践

    慢日志查询作用 慢日志查询的主要功能就是,记录sql语句中超过设定的时间阈值的查询语句.例如,一条查询sql语句,我们设置的阈值为1s,当这条查询语句的执行时间超过了1s,则将被写入到慢查询配置的日志 ...

  4. 配置一个nginx+php-fpm的web服务器

    一.基本信息 系统(L):CentOS 6.9 #下载地址:http://mirrors.sohu.com 反代&负载均衡(N):NGINX 1.14.0 #下载地址:http://nginx ...

  5. mysql 多主多从配置,自增id解决方案

    MySQL两主(多主)多从架构配置 一.角色划分 1.MySQL数据库规划 我现在的环境是:zhdy04和zhdy05已经做好了主主架构配置,现在需要的是把两台或者多台从服务器与主一一同步. 主机名 ...

  6. Python递归与迭代

    1.递归与迭代: 递归和迭代都是循环的一种.简单地说,递归是重复调用函数自身实现循环.迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结 ...

  7. AtCoder Grant Contest 10.F 博弈

    题意:给定一棵树,每个节点有个权值,Alice和Bob轮流进行操作,给定游戏起点指针指向节点C.不断进行下述操作. 1.将当前节点权值-1,然后将指针从该节点移动到相邻节点,出现一方不能移动(即指针指 ...

  8. golang使用rabbitMQ入门代码

    package main import ( "github.com/streadway/amqp" "log" "time" ) func ...

  9. [HDU6326]Monster Hunter(贪心)

    用(a,b)表示一个点先失去a点HP,然后增加b点HP 首先容易证明忽略父亲条件下,任意两个点,先吃b大的最优 对于一个节点v和它的父节点u,若此时选v最优,那么就是吃到u时可以立即吃掉v, 于是可以 ...

  10. HTML基础part2

    表单标签form 功能:表单用于向服务器传输数据,从而实现用户与Web服务器的交互 表单能够包含input系列标签,比如文本字段.复选框.单选框.提交按钮等等. 表单还可以包含textarea.sel ...