抽象方法

IHostingEnvironment VS IHostEnvironment - .NET Core 3.0中的废弃类型

流过昼夜 提交于 2020-01-06 13:44:51
原文: IHostingEnvironment VS IHostEnvironment - .NET Core 3.0中的废弃类型 原文: https://andrewlock.net/ihostingenvironment-vs-ihost-environment-obsolete-types-in-net-core-3/ 作者: Andrew Lock 译者: Lamond Lu 本篇是 如何升级到ASP.NET Core 3.0 系列文章的第二篇。 Part 1 - 将.NET Standard 2.0类库转换为.NET Core 3.0类库 Part 2 - IHostingEnvironment VS IHostEnvironment - .NET Core 3.0中的废弃类型(本篇) Part 3 - 避免在ASP.NET Core 3.0启动时注入服务 Part 4 - 将终端中间件转换为ASP.NET Core 3.0中的节点路由 Part 5 - 将集成测试的转换为NET Core 3.0 在本篇博客中,我将描述与之前版本相比,ASP.NET Core 3.0中已经被标记为废弃的类型。我将解释一下为什么这些类型被废弃了,它们的替换类型是什么,以及你应该什么时候使用它们。 ASP.NET Core与通用主机(Generic Host)合并 # 在ASP.NET

Java抽象类和接口

落爺英雄遲暮 提交于 2020-01-05 04:00:51
抽象类和接口 一、抽象类和抽象方法 对于抽象类,首先需要介绍抽象方法,而抽象类因抽象方法的存在而存在 1.抽象方法   (1)必要性:    有些父类方法不确定如何写方法体,但是对于继承它的子类又必须用到这个方法。 需要用到抽象方法   例如:对于动物类,我们知道父类“动物”会叫,但是因为不同的动物叫的方法不同,而对于子类”狗“这个子类又必须用到“叫”这个方法。因此对于父类“动物”的“叫”方法不知道怎么去写。这里就用到抽象方法。   代码示例:  1 //抽象类讲解 2 public class test抽象类 { 3 public static void main(String[] args) { 4 Dog1 dog = new Dog1(); 5 dog.cry(); 6 } 7 } 8 9 abstract class Animal{ 10 String nameString; 11 int age; 12 //动物会叫,但是不知道怎么叫,设定为抽象方法 13 abstract public void cry(); 14 } 15 16 class Dog1 extends Animal{ 17 //因为父类中“叫”方法没有实现,这里一定要重写 18 public void cry(){ 19 System.out.println("狗叫"); 20 } 21 }   (2

【设计模式自习室】理解工厂模式的三种形式

折月煮酒 提交于 2020-01-04 00:19:06
前言 《设计模式自习室》系列,顾名思义,本系列文章带你温习常见的设计模式。主要内容有: 该模式的 介绍 ,包括: 引子、意图(大白话解释) 类图、时序图(理论规范) 该模式的 代码示例 :熟悉该模式的代码长什么样子 该模式的 优缺点 :模式不是万金油,不可以滥用模式 该模式的 实际使用案例 :了解它在哪些重要的源码中被使用 该系列会逐步更新于我的博客和公众号(博客见文章底部) 也希望各位观众老爷能够关注我的个人公众号: 后端技术漫谈 ,不会错过精彩好看的文章。 系列文章回顾 【设计模式自习室】开篇:为什么我们要用设计模式? 【设计模式自习室】建造者模式 【设计模式自习室】原型模式 【设计模式自习室】透彻理解单例模式 创建型——简单工厂/工厂模式/抽象工厂 引子 工厂模式是一个非常重要的创建型模式,但是工厂模式又分为好多种,并且网上文章很多,很多对工厂模式的定义都不是很明确,甚至还互相冲突,本文希望通过放在一起串讲的形式,力求能够用最简洁的语言 理清 工厂模式。 先看一个工厂模式的定义: “Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantiation to

lambda表达式

混江龙づ霸主 提交于 2020-01-03 17:19:15
概述   lambda表达式是JDK 1.8提供的一种新特性,它使得Java也能像C#和C++语言一样进行简单的“函数式编程”,这不仅简化了某些通用结构的实现方式,也大大增强了Java语言的表达功能。   lambda表达式是基于数学中的λ演算得名,本质上就是一个没有方法名的匿名方法。 lambda表达式的使用   lambda表达式不是独立执行的,而是经常被应用在函数式接口(functional interface)定义的抽象方法的实现中。 函数式接口   函数式接口是指只包含一个抽象方法的接口。函数式接口的抽象方法指明了接口的目标用途。   定义了函数式接口之后,就可以把lambda表达式赋值给该接口的一个引用,lambda表达式定义了函数式接口声明的抽象方法的行为。   例如:定义一个接口Computer,其中只有一个抽象方法compute(),则Computer是一个函数式接口。 1 interface Computer { 2 3 int compute(int x, int y); 4 5 } Computer lambda表达式格式   lambda表达式类似于匿名内部类,表达式本身实现了函数式接口的唯一抽象方法,而表达式返回的结果是一个函数式接口类型。   lambda表达式通常以“(参数) -> {方法体}”这样的格式书写,其中“->

Java11要来了,不如学学Java8的Lambda

感情迁移 提交于 2020-01-03 17:06:32
Java11要来了,不如学学Java8的Lambda Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。 Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。 使用 Lambda 表达式可以使代码变的更加简洁紧凑。 语法 lambda 表达式的语法格式如下: ( parameters ) -> expression 或 ( parameters ) -> { statements ; } 以下是lambda表达式的重要特征: 可选类型声明: 不需要声明参数类型,编译器可以统一识别参数值。(String a, String b)->expression 可以改成 (a, b)->expression 可选的参数圆括号: 一个参数无需定义圆括号,但多个参数需要定义圆括号。例如:a->expression 可选的大括号: 如果主体包含了一个语句,就不需要使用大括号。 可选的返回关键字: 如果主体只有一个表达式,则编译器会自动返回值,大括号需要指定明表达式返回了一个数值。 前言 Java11前两天都发布了,而自己Java8还没搞明白,真是羞为称自己为Java程序员。今天就让我们来 通俗易懂的聊一聊Java8中的Lambda表达式~ 简单上手 通过Lamda表达式,可以变换为: new Thread(() -> System.out

JAVA设计模式

余生颓废 提交于 2020-01-02 17:03:46
1、单例模式 定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 通用代码:(是线程安全的) public class Singleton { private static final Singleton singleton = new Singleton(); //限制产生多个对象 private Singleton(){ } //通过该方法获得实例对象 public static Singleton getSingleton(){ return singleton; } //类中其他方法,尽量是 static public static void doSomething(){ } } 使用场景: ● 要求生成唯一序列号的环境; ● 在整个项目中需要一个共享访问点或共享数据,例如一个 Web 页面上的计数 器,可以不用把每次刷新都记录到数据库中,使用单例模式保持计数器的值,并确 保是线程安全的; ● 创建一个对象需要消耗的资源过多,如要访问 IO 和数据库等资源; ● 需要定义大量的静态常量和静态方法(如工具类)的环境,可以采用单例模式 (当然,也可以直接声明为 static 的方式)。 线程不安全实例: public class Singleton { private static Singleton singleton = null; /

Java面向对象 学习笔记【实验楼】

匆匆过客 提交于 2020-01-01 00:57:07
类 对于一个具体的对象而言,比如一部 iphone 6,世上还有许多跟这部手机有着同样属性或行为的对象,我们为了方便将它们归类起来,提取出他们相同的属性和行为,而我们把归类起来的这个抽象的概念,称之为类。 比如每个人就是一个对象,小张是一个对象,小明是一个对象。而每个人虽然不同,但却有许多相同的属性和行为,于是我们可以把他们抽象出来,变成一个类,比如人类。 类是封装对象的属性和行为的载体 ,反过来说具有相同属性和行为的一类实体被称为类。 由此可以总结出类的定义: 类是相同或相似对象的一种抽象,是对象的一个模板,它描述一类对象的行为和状态。 类是具有相同属性和方法(行为)的对象的集合 我们在上面反复强调对象的属性和行为,什么是对象的属性呢?什么又是对象的行为呢? 属性是对象具有的特征 。每个对象的每个属性都拥有特定值。我们上面讲过对象是一个具体并且确定的事物,正是对象属性的值来区分不同的对象,比如我们可以通过一个人的外貌特征区分他。 那什么是对象的行为呢?在计算机中我们通过方法去实现对象的行为,而 对象的方法便是对象所具有的操作 ,比如人会走路、会哭泣、会学习等等都是人的行为,也就是人的方法。 类和对象之间有什么关系吗?在上面的讲解中大家应该有些了解了。 类就是对象的抽象(或者模板),对象就是类的具体(或者实例) 。比如手机是一个抽象的概念,它代表着类。而一部 iphone 6

JAVA学习笔记--二

二次信任 提交于 2019-12-31 16:38:20
一 、抽象类: 访问修饰符 abstract class 类名 { } 抽象类和普通类的区别: 1、 抽象类不能被实例化 2、 抽象类一般含有抽象方法 抽象方法:在抽象类中只有方法签名(方法声明),没有方法实现,具体实现在继承了该抽象类的子类中实现 3、 抽象类可以没有抽象方法,但是一旦某个类有了一个抽象方法,那么该类一定是一个抽象类 4、 抽象类的特殊形式:没有抽象方法的类和所有方法都是抽象方法的类 5、 子类一旦继承抽象类,一定要实现该抽象类的抽象方法 抽象类的特殊形式: 1、 抽象类中所有的方法都是普通方法: 用于:父类本身不适合直接创建对象的情况 2、 抽象类中所有的方法都是抽象方法:(接口) 用于:定义规范或者标准 如果抽象类中都是抽象方法,这种特殊形式实际上就是接口 二 、接口中所有的方法默认都是 public abstract XXXX 类型,所以抽象类中如果所有的方法都是抽象方法实际上该抽象类就是接口形式了。 接口:使用关键字 interface 定义接口,接口中只有方法声明,没有方法实现,因为接口中所有的方法默认的修饰都是 public abstract ,接口中的方法由实现该接口的类去实现。 接口中所有的变量都是常量,在接口中声明变量默认修饰符是 public static final Int num = 10; 接口不能直接 new ,应该创建接口实现类的实例

多态,抽象类和抽象方法,接口

佐手、 提交于 2019-12-30 05:36:05
多态:   继承,重写后,基类引用指向子类对象。   调用基类被重写的方法时,实际new的是哪个子类对象,调用哪个子类对象方法。   多态是执行期间(非编译)判断所引用的对象的实际类型。   提升可扩展性。   使用举例:      方法传入基类对象(接口对象)作为形参,实际调用时,如果传入的是子类对象(实现接口的对象),则调用形参成员时,调用的是实际参数,即子类对象(实现接口的对象)的成员。 抽象类和抽象方法:   抽象方法只需声明,不用实现。   public abstract void a();   抽象方法用来被子类重写,且子类必须重写,否则子类要声明为抽象类。   有抽象方法的类即为抽象类且必须声明为抽象类。   抽象类只能被继承,不能实例化。 接口:   public interface A{     public static final int i = 1;     public void B();   }   接口可以多重实现。   接口是抽象方法和常量值的集合。   接口是特殊的抽象类,只包含常量和方法的定义,没有变量和方法的实现。   变量默认且必须public static且final。   方法默认且必须public abstract。   接口解决了“多继承”时,子类对象包含的多个父类对象成员重名问题,成员属于接口,不属于实现接口的对象。  

java基础-接口

我与影子孤独终老i 提交于 2019-12-30 05:35:30
一.接口的定义(接口interface)   接口是抽象方法和常量值的定义的集合。其实接口是一种特殊的抽象类,这种抽象类只包含常量和方法的定义,而没有变量和方法的实现。    接口(interface)是一种特殊的抽象类, 在这种抽象类里面,所有的 方法都是抽象方法 ,并且这个抽象类的属性(即成员变量)都是声明成“ public static final 类型 属性名”这样的,默认也是声明成 “public static fina l”即里面的成员变量都是公共的、静态的,不能改变的。因此在接口里面声明常量的时候,可以写成“public static final 类型 常量名=value(值)”这样的形式,也可以直接写成“类型 常量名=value(值)”如:“public static final int id=10”可以直接写成“int id=10”这样的形式,因为在接口里面默认的属性声明都是“public static final”的,因此“public static final”可以省略不写。在接口里面声明的抽象方法可以不写abstract关键字来标识,因为 接口里面所有的方法都是抽象的 ,因此这个“abstract”关键字默认都是省略掉的,如在一个接口里面声明这样的三个方法:“public void start()”、“public void run()”、“public