1.介绍 继承是面向对象的概念,用于代码的可重用性.可以通过使用extends关键字来实现继承. 为了实现继承,一个类必须扩展到其他类,被扩展类称为超类或父类.扩展的类称为派生类或子类. Scala支持各种类型的继承,包括单一,多层次,多重和混合.可以在类中使用单一,多层次和层次结构.多重和混合只能通过使用特征来实现.在这里,通过使用图形表示所有类型的继承 单一继承 多层继承 多重继承 2.例子 class GreatApe(){ def call ="GreatApe! " var…
在scala里,类继承有两点限制: 重写方法需要使用override关键字: 只有主构造函数才能往父类构造函数中传参数. 在java1.5中引入了override注解,但不强制使用.不过在scala中要想重写方法必须使用override关键字.如果确实重写了父类的方法又不使用override关键字的话,则会在编译时报错,提示没有使用override修饰符. scala的副构造函数必须调用主构造函数或是另一个副构造函数.只有在主构造函数中才能向父类的构造函数中传递数据.可以看出来主构造函数如同父类…
1. 简单类与无参方法 class Person { var age = 0 // 必须初始化字段 def getAge() = age // 方法默认为公有的 } 备注 在Scala中,类并不声明为public. Scala源文件可以包含多个类,所有这些类都具有公有可见性.属性不声明默认为public. 使用类: val p = new Person // 或者new Person() p.age = 23 println(p.getAge()) // 23 调用无参方法时,可以写上圆括号,也…
我们在编程的过程中,并非都是要重头开始.比如其他人已经有现成的类,我们可以使用其他找人编写的类.术语称之为: 继承. 当一个类继承例外一个类时,它可以获得这个类的所有属性和方法:原有的类称之为 父类,新的类称之为子类.子类可以继承父类的所有方法和属性,还可以自定一些自己的方法和属性. 比如我们已经有了一个叫汽车的父类,我们可以继承这个类,生成一个电动车的子类: #-*- coding:utf-8 -*- class Car(): def __init__(self, make, model, y…
1.样本类 在申明的类前面加上一个case修饰符,带有这种修饰符的类被称为样本类(case class). 被申明为样本类的类的特点:1.会添加和类名一致的工厂方法:2.样本类参数列表中的所有参数隐式获得了val前缀,因此它被当做字段维护:3.编译器被这个样本类添加了toString.hashcode.equals方法的实现:4.支持了模式匹配 2.模式匹配 一个模式匹配包含了一系列备选项,每个都开始于关键字case.每个备选项都包含了一个模式及一到多个表达式,它们将在模式匹配过程中被计算. 其…
1.简单类和无参方法 calss Counter{ private var value = 0  //必须初始字段 def increment(){value +=1} //方法默认是公有的 def current()=value } 在Scala中,类并不声明为publuc.Scala源文件可以包含多个类,所以这些类具有公有可见性.使用该类需要做的就是构造对象并按照通常的方式来调用方法: val myCounter = new Counter //或者new Counter() myCount…
基于.net的分布式系统限流组件   在互联网应用中,流量洪峰是常有的事情.在应对流量洪峰时,通用的处理模式一般有排队.限流,这样可以非常直接有效的保护系统,防止系统被打爆.另外,通过限流技术手段,可以让整个系统的运行更加平稳.今天要与大家分享一下限流算法和C#版本的组件. 一.令牌桶算法: 令牌桶算法的基本过程如下: 假如用户配置的平均发送速率为r,则每隔1/r秒速率将一个令牌被加入到桶中: 假设桶最多可以存发b个令牌.当桶中的令牌达到上限后,丢弃令牌. 当一个有请求到达时,首先去令牌桶获取令…
JavaSE学习笔记(4)---抽象类和接口 抽象方法和抽象类 ·抽象方法 使用abstract修饰的方法,没有方法体,只有声明.定义的是一种"规范",就是告诉子类必须要给抽象方法提供具体的实现. 特点 抽象方法必须声明在抽象类中. 抽象方法声明引入了一个新方法,但不提供该方法的实现,由于抽象方法不提供任何实际实现,因此抽象方法的方法体只包含一个分号. 声明抽象方法时,不能使用static 和private 修饰符. 当从抽象类派生一个非抽象类时,需要在非抽象类中重写抽象方法,以提供具…
python学习笔记4_类和更抽象 一.对象 class 对象主要有三个特性,继承.封装.多态.python的核心. 1.多态.封装.继承 多态,就算不知道变量所引用的类型,还是可以操作对象,根据类型或对象的不同而表现出不同的行为.   这是一个简单的例子,add方法,,包装了一下 + 函数.这就是多态.不管参数是什么类型,使用add方法,都可以把他们+在一起. 封装,封装式对全局作用域中其他区域隐藏多余的信息.和多态相似但是不同的概念,使用对象而不知道其细节.多态是不知道对象引用了什么类型,而…
将trait作为接口使用 1 // Scala中的Triat是一种特殊的概念 2 // 首先我们可以将Trait作为接口来使用,此时的Triat就与Java中的接口非常类似 3 // 在triat中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可 4 // 类可以使用extends关键字继承trait,注意,这里不是implement,而是extends,在scala中没有implement的概念,无论继承类还是trait,统一都是extends 5 // 类继承tra…
Scala与Java具有很多相似之处,但又有很多不同.这里主要从一个Java开发者的角度,总结在使用Scala的过程中所面临的一些思维转变. 这里仅仅是总结了部分两种语言在开发过程中的不同,以后会陆续更新一些切换后在开发过程中值得注意的地方.以下列举了部分,但令人印象深刻的Scala语言的不同之处,具体的代码演示样例及具体阐述见下文.  Scala中可直接调用Java代码,与Java无缝连接. 语句能够不用";"结束.且推荐不适用";". 变量声明时以var或va…
UML学习笔记:类图 有些问题,不去解决,就永远都是问题! 类图 类图(Class Diagrame)是描述类.接口以及它们之间关系的图,用来显示系统中各个类的静态结构. 类图包含2种元素:类.接口,6种关系:实现.泛化.组合.聚合.关联.依赖. 组成元素 类 接口 关系 实现关系 类的继承结构表现在UML中为:泛化(generalize)与实现(realize).实现关系只可用于表示接口与类的继承结构,类会实现接口定义的所有方法. 泛化关系 继承关系为 is-a的关系:两个对象之间如果可以用…
学习笔记(Python继承) 有几种叫法(父类-子类.基类-派生类)先拿代码演示一下: class father: def work(self): print("work>>>>>") def car(self): print("car>>>>>>>>>") class son(father): #想要继承就得添加父类 def study(self): print("stu…
Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图片 文件和文件夹 相关函数  (boolean) mkdir() 创建此抽象路径名指定的目录  (boolean) mkdirs() 创建此抽象路径名指定的目录,包括所有必需但不存在的父目录.  (boolean) delete() 删除此抽象路径名表示的文件或目录  (boolean) creat…
Java学习笔记之---类和对象 (一)类 类是一个模板,它描述一类对象的行为和状态  例如:动物类是一个类,动物们都有属性:颜色,动物们都有行为:吃饭 public class Dog { String name; String color; public void eat(){ System.out.println("吃饭"); } } (二)对象 对象是类的一个实例,有状态和行为.例如,一条狗是一个对象,它的状态有:颜色.名字:行为有:吃饭等 1.创建对象: 声明:声明一个对象,…
接着前面的学习: java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note6.html,转载请注明源地址. 1.类的继承 一种由已有的类创建新类的机制,是面向对象程序设计的基石之一.通过继承,可以根据已有类来定义新类,新类拥有已有类的所有…
一.主从构造器 java中构造函数没有主.从之分,只有构造器重载,但在scala中,每个类都有一个主构造器,在定义class时,如果啥也没写,默认有一个xxx()的主构造器 class Person { var name: String = _ /** * 从构造器 * @param name */ def this(name: String) = { this //注意:从构造器,必须先调用主构造器 this.name = name; } override def toString = { "…
无参方法 功能:将方法的定义转换为属性字段的定义: 作用范围:方法中没有参数,并且方法仅能通过读取所包含的对象属性去访问可变状态,而不改变可变状态,就可使用无参方法: 例子: abstract class Element{     def texts:String } class Sub1Element(text:String) extends Element{     val texts:String = text } object RunApplication{     def main(a…
简介: 通过继承联系在以前的类构成一种层次关系.通常在层次关系的根部有一个基类,其他类则直接或间接地从基类继承,这些继承得到的类称为类的派生类. 作用: 1.子类拥有父类的所有成员函数和成员变量. 2.子类可以拥有父类没有的成员函数和成员变量. 3.子类是一种特殊的父类. 4.子类对象可以当父类对象使用. 4.1.父类指针指向子类对象. 4.2.子类对象初始化父类对象. 继承中的构造/析构函数的初始化顺序: 父类构造函数->组合类构造函数->子类构造函数->子类析构函数->组合类构…
第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 3 1.5 Windows下搭建Scala开发环境 4 1.6 Linux下搭建Scala开发环境 5 1.7 Scala开发工具的介绍 8 1.7.1 idea工具的介绍 8 1.7.2 Scala插件安装 8 1.8 scala的开发的快速入门 10 1.8.1 IDE工具Idea 来开发 “…
之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询用.详细可以参考the-swift-programming-language-in-chinese,或者苹果官方英文版文档 当前版本是swift2.2 类和结构体 与 Objective-C 语言不同的是,Swift 允许直接设置结构体属性的子属性. 实际上,在 Swift 中,所有的基本类型:整数…
http://outofmemory.cn/scala/scala-trait-introduce-and-example 与Java相似之处 Scala类型系统的基础部分是与Java非常相像的.Scala与Java一样有单一的根类,Java通过接口来实现多重继承,而Scala则通过特征(trait)来实现(Scala的特征可以包含实现代码,这当然是与Java接口不同的.不过由于特征自己具有类型的功能,所以对于没有包含实现代码的特征,可以认为与Java的接口是等价的)用Trait来实现混入(mi…
第2章 变量 val,var,声明变量必须初始化:变量类型确定后不可更改 数据类型:与java有相同的数据类型,在scala中数据类型都是对象 特殊类型:Unit:表示无值,只有一个实例值写出(),相当于void:Null:null:Nothing:null(表示非正常执行) 标识符命名规范:大于1个操作符可以作为标识符:反引号包含的任意字符,包含关键字 scala关键字 第3章 运算符 没有java中的++,--,使用+=,-=替代 键盘输入:StdIn.readxxx 第4章 流程控制 if…
[TOC] 本文<快学Scala>的笔记 tuple学习笔记 tuple的定义 对偶是元组(tuple)的最简单形态--元组是不同类型的值的聚集. 元组的值是通过将单个值包含在圆括号中构成.Example:(1,1.3415,"Fred") tuple的访问 可以通过_1,_2,_3访问元组的元素 val first = tuple._1 //元组的位置从1开始,而非从0开始 拉链操作:zip 通过操作元组,可以把多个值绑在一起,以便它们能够被一起处理,可以通过zip方法完…
接口(interface)1.interface创建一个接口,implements实现接口 interface jiekou{} class lie implements jiekou{}2.接口可以有属性,但必须赋值,不建议在接口定义属性(可用于定义常量)3.接口,可以定义与接口同名的方法4.接口的所有方法都没有方法体 interface jiekou{void a();} 5.接口定义的方法的权限修饰默认是public,实现接口的类重写其方法时,必须显示声明public修饰:6.实现接口的类…
Java接口和抽象类很像,他们有哪些相同点和异同点呢,下面我们做一个小结 相同 ① 都不能被实例化,都位于继承树的顶端,用于被实现或者继承 ② 都可以包含抽象方法,实现接口或者继承抽象类的普通子类都必须实现这些接口 差别 ① 接口可以规范调用者可以调用哪些服务(对外),已经如何调用这些服务(方法签名) ② 接口是多个模块之间的耦合标准,当在多个应用程序之间使用接口,接口是应用程序之间的通信标准 ③ 抽象类则不同,作为多个子类的共同父类,体现的是一种模板式设计,可以当成是系统实现过程中的中间产品…
子类不继承父类的构造方法,但父类的构造方法对子类构造方法的创建有影响.具体来说就是: ①.当父类没有无参构造方法时,子类也不能有无参构造方法:且必须在子类构造方法中显式以super(参数)的形式调用父类构造方法.否则会出现如下的错误: Implicit super constructor Person() is undefined for default constructor. Must define an explicit constructor 子类在有参构造方法中显式调用super(参数…
1. Java 抽象类 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类. 抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量.成员方法和构造方法的访问方式和普通类一样. 由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用.也是因为这个原因,通常在设计阶段决定要不要设计抽象类. 父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法. 在…
Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点:但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法. 一.scala学习…
十八. 继承和多态 ● 继承的概念 继承(inheritance): 以旧类为基础创建新类, 新类包含了旧类的数据成员和成员函数(除了构造函数和析构函数), 并且可以派生类中定义新成员. 形式: class <派生类名>: <继承方式1> <基类名1> <继承方式2> <基类名2> ..., <继承方式n> <基类名n> { <派生类新定义的成员> } #include <iostream> usi…