随笔分类 - Scala
摘要:元组 - Tuple* 说明* 可以存放相同或不同数据类型的容器* 根据元素的个数我们称之为 x元元组* 注意* 元组最大只能存22个元素** */ /* * 元组 - Tuple * 说明 * 可以存放相同或不同数据类型的容器 * 根据元素的个数我们称之为 x元元组 * 注意 * 元组最大只能存2
阅读全文
摘要:1.Map的分类 * TODO: Map的分类 * 1.不可变 Map * 2.可变 Map(mutable.Map) 2.可变Map 和 不可变Map的区别 * TODO: 可变Map 和 不可变Map的区别 * Map 的可变和不可变 指的是Map初始化后 是否可以被修改(增加、减少、修改元素)
阅读全文
摘要:Set集合* 特点* 元素不重复且无序* 分类* 可变Set和不可变Set* import scala.collection.mutable /* * Set集合 * 特点 * 元素不重复且无序 * 分类 * 可变Set : 对象初始化后,元素个数和内容可以修改,修改后对象不会改变,也不会产生新的对
阅读全文
摘要:说明* 1. 链表的实现分类* 不可变List、可变List可变&不可变的区别* 不可变 : 链表初始化时,长度固定,不可修改* 可变 : 链表长度可改变 import scala.collection.mutable.ListBuffer /** * @author gaocun * @creat
阅读全文
摘要:数组的分类* 可变数组(Array)、不可变数组(ArrayBuffer)可变&不可变* 说明* 可变 : 长度可变,添加或删除元素后,原对象改变* 不可变 : 长度不可变,添加或删除后,原对象不改变*不可变数组 - Array* 声明* 1. 通过类 创建* var arr:Array[Int]
阅读全文
摘要:特质和抽象类的区别* 使用原则* 1. 优先使用特质,因为一个类可以混入多个特质* 2. 如果需要使用 带参构造器,只能使用抽象类* 抽象类 : 可以定义带参构造器* 特质 : 只能定义无参构造x* */ /** * @author gaocun * @create 2021-10-26 8:27
阅读全文
摘要:特征(Trait)* 说明* 1. scala中的Trait,相当于java中的接口+抽象类,可以实现多继承* 2. trait中可以有抽象属性和抽象方法 也可以有非抽象属性和方法* 3. 一个类可以继承多个trait / 一个类可以混入(mixin)多个特质* 语法* 声明* trait 名称 {
阅读全文
摘要:伴生对象* 语法* object 对象名称 { 对象属性 }* 说明* 1. 类名.属性 / 类名.方法* scala是完全面向对象,所有不能像java一样,定义静态属性* 可以将属性定义伴生对象中,来模拟 java的静态属性* 2. 伴生对象 是它伴生类的 单例对象,全局唯一一份用private修
阅读全文
摘要:匿名子类* 说明* 1. 在为变量赋值(数据类型:抽象类/接口)时,直接定义抽象类/接口的实现(随用随定义)* 语法* var 变量名称:抽象类 = new 抽象类 { 抽象类/接口的实现 } /** * @author gaocun * @create 2021-10-25 4:31 PM */
阅读全文
摘要:抽象类* 语法* 抽象类* abstract class 类名{}* 抽象属性* var|val id:Int //属性没有初始化,就是一个抽象属性* 抽象方法* def show //方法只有声明,没有实现,就是一个抽象方法* 说明* 1. 抽象方法不能直接 初始化(不能new对象)* 2. 父类
阅读全文
摘要:多态* 概念* 一种数据类型,具有多种形态,在运行时判定它属于哪一种数据类型(动态绑定)* 语法* FuClass obj = new ZiClass()* 用父类(超类)接收子类对象,调用时会优先调用子类的实现(属性&方法)* 当子类没有重写时,则调用父类的实现* 无法调用子类的特有实现(子类有而
阅读全文
摘要:继承* 语法* class 子类名称(参数列表) extends 父类名称(参数列表) {}* 说明* 父类名称(参数列表) 决定着 父类使用哪种构造器对父类进行初始化* 说明* 1. 子类继承父类的 属性 和 方法 (子类及子类对象中不用声明,可以直接用)* 2. scala是单继承* 3. 子类
阅读全文
摘要:说明* 和java一样,scala创建对象时,也会调用构造器方法,并且可以有多个构造器*scala的构造器* 分类* 主构造器(类体本身) 、 辅助构造器* 语法* class 类名(形参列表) {* // 主构造器* // 成员* def this(形参列表){//辅助构造器1* }* def t
阅读全文
摘要:方法* 语法* def 方法名(参数类别)[:返回值类型] = {* 方法体* }* */
阅读全文
摘要:Java中权限修饰符* public、private、protected和默认*Scala中的权限修饰符* 默认、private、private[包名]、protected* 说明* 默认* scala中的默认的访问权限为public,但是scala中没有public关键字* 权限说明 公共属性、公
阅读全文
摘要:封装思想* 说明* 封装就是将抽象出的 数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分* 只能通过被授权的操作(成员方法),才能操作数据*Java的封装* 说明* 1. 将属性私有化* 2. 提供公共的set方法,用于对属性赋值* 3. 提供公共的get方法,用于获取属性值*Scal
阅读全文
摘要:类和对象的区别* 类 : 一个模板* 对象 : 具体的事物*Java中的类* 说明* 1. 如果类是public,那文件名必须和类名一致(一个.java文件只有一个public类)*类的定义* 语法* [修饰符] class 类名 {* 成员* }* 说明* 1. Scala中类不用声明 publi
阅读全文
摘要:包的三大作用(和java相同)* 1. 区分相同名称的类* 2. 当类很多时,可以很好的管理类* 3. 控制访问权限*包的命名规范* 1. 只能包含数字、字母、下划线、小圆点. 但是不能数字开头,也不能使用关键字* 2. 一般都是小写字母加.* 3. com.公司名称.项目名称.业务模块名称*包说明
阅读全文
摘要:惰性加载* 定义* 当函数返回值被声明为 lazy 时,函数的执行将被推迟,直到我们首次对此取值,该函 数才会执行。* 这种函数我们称之为惰性函数。* 注意事项* 只能用来修饰 val的变量* 'lazy' modifier allowed only with value definitions*
阅读全文
摘要:抽象控制* 函数调用的方式* 值调用 : 函数名称(实参)* 名调用 : 函数名称(代码片段)* 示例 : 将代码片段定义为 形参* 语法* def 函数名称(形参名称: =>片段返回值类型) = {函数体}* 注意 : java 中只有值调用,没有名调用* 代码片段必须要有返回值** */ pac
阅读全文