10 2021 档案

摘要:数组的分类* 可变数组(Array)、不可变数组(ArrayBuffer)可变&不可变* 说明* 可变 : 长度可变,添加或删除元素后,原对象改变* 不可变 : 长度不可变,添加或删除后,原对象不改变*不可变数组 - Array* 声明* 1. 通过类 创建* var arr:Array[Int] 阅读全文
posted @ 2021-10-29 18:38 学而不思则罔! 阅读(33) 评论(0) 推荐(0) 编辑
摘要:特质和抽象类的区别* 使用原则* 1. 优先使用特质,因为一个类可以混入多个特质* 2. 如果需要使用 带参构造器,只能使用抽象类* 抽象类 : 可以定义带参构造器* 特质 : 只能定义无参构造x* */ /** * @author gaocun * @create 2021-10-26 8:27 阅读全文
posted @ 2021-10-26 17:23 学而不思则罔! 阅读(55) 评论(0) 推荐(0) 编辑
摘要:特征(Trait)* 说明* 1. scala中的Trait,相当于java中的接口+抽象类,可以实现多继承* 2. trait中可以有抽象属性和抽象方法 也可以有非抽象属性和方法* 3. 一个类可以继承多个trait / 一个类可以混入(mixin)多个特质* 语法* 声明* trait 名称 { 阅读全文
posted @ 2021-10-26 17:22 学而不思则罔! 阅读(65) 评论(0) 推荐(0) 编辑
摘要:伴生对象* 语法* object 对象名称 { 对象属性 }* 说明* 1. 类名.属性 / 类名.方法* scala是完全面向对象,所有不能像java一样,定义静态属性* 可以将属性定义伴生对象中,来模拟 java的静态属性* 2. 伴生对象 是它伴生类的 单例对象,全局唯一一份用private修 阅读全文
posted @ 2021-10-25 18:31 学而不思则罔! 阅读(50) 评论(0) 推荐(0) 编辑
摘要:匿名子类* 说明* 1. 在为变量赋值(数据类型:抽象类/接口)时,直接定义抽象类/接口的实现(随用随定义)* 语法* var 变量名称:抽象类 = new 抽象类 { 抽象类/接口的实现 } /** * @author gaocun * @create 2021-10-25 4:31 PM */ 阅读全文
posted @ 2021-10-25 16:45 学而不思则罔! 阅读(31) 评论(0) 推荐(0) 编辑
摘要:抽象类* 语法* 抽象类* abstract class 类名{}* 抽象属性* var|val id:Int //属性没有初始化,就是一个抽象属性* 抽象方法* def show //方法只有声明,没有实现,就是一个抽象方法* 说明* 1. 抽象方法不能直接 初始化(不能new对象)* 2. 父类 阅读全文
posted @ 2021-10-25 16:28 学而不思则罔! 阅读(40) 评论(0) 推荐(0) 编辑
摘要:多态* 概念* 一种数据类型,具有多种形态,在运行时判定它属于哪一种数据类型(动态绑定)* 语法* FuClass obj = new ZiClass()* 用父类(超类)接收子类对象,调用时会优先调用子类的实现(属性&方法)* 当子类没有重写时,则调用父类的实现* 无法调用子类的特有实现(子类有而 阅读全文
posted @ 2021-10-24 08:56 学而不思则罔! 阅读(34) 评论(0) 推荐(0) 编辑
摘要:继承* 语法* class 子类名称(参数列表) extends 父类名称(参数列表) {}* 说明* 父类名称(参数列表) 决定着 父类使用哪种构造器对父类进行初始化* 说明* 1. 子类继承父类的 属性 和 方法 (子类及子类对象中不用声明,可以直接用)* 2. scala是单继承* 3. 子类 阅读全文
posted @ 2021-10-24 08:30 学而不思则罔! 阅读(41) 评论(0) 推荐(0) 编辑
摘要:说明* 和java一样,scala创建对象时,也会调用构造器方法,并且可以有多个构造器*scala的构造器* 分类* 主构造器(类体本身) 、 辅助构造器* 语法* class 类名(形参列表) {* // 主构造器* // 成员* def this(形参列表){//辅助构造器1* }* def t 阅读全文
posted @ 2021-10-23 09:35 学而不思则罔! 阅读(30) 评论(0) 推荐(0) 编辑
摘要:方法* 语法* def 方法名(参数类别)[:返回值类型] = {* 方法体* }* */ 阅读全文
posted @ 2021-10-22 18:49 学而不思则罔! 阅读(24) 评论(0) 推荐(0) 编辑
摘要:Java中权限修饰符* public、private、protected和默认*Scala中的权限修饰符* 默认、private、private[包名]、protected* 说明* 默认* scala中的默认的访问权限为public,但是scala中没有public关键字* 权限说明 公共属性、公 阅读全文
posted @ 2021-10-22 13:51 学而不思则罔! 阅读(46) 评论(0) 推荐(0) 编辑
摘要:封装思想* 说明* 封装就是将抽象出的 数据和对数据的操作封装在一起,数据被保护在内部,程序的其他部分* 只能通过被授权的操作(成员方法),才能操作数据*Java的封装* 说明* 1. 将属性私有化* 2. 提供公共的set方法,用于对属性赋值* 3. 提供公共的get方法,用于获取属性值*Scal 阅读全文
posted @ 2021-10-21 19:44 学而不思则罔! 阅读(22) 评论(0) 推荐(0) 编辑
摘要:类和对象的区别* 类 : 一个模板* 对象 : 具体的事物*Java中的类* 说明* 1. 如果类是public,那文件名必须和类名一致(一个.java文件只有一个public类)*类的定义* 语法* [修饰符] class 类名 {* 成员* }* 说明* 1. Scala中类不用声明 publi 阅读全文
posted @ 2021-10-21 19:39 学而不思则罔! 阅读(24) 评论(0) 推荐(0) 编辑
摘要:包的三大作用(和java相同)* 1. 区分相同名称的类* 2. 当类很多时,可以很好的管理类* 3. 控制访问权限*包的命名规范* 1. 只能包含数字、字母、下划线、小圆点. 但是不能数字开头,也不能使用关键字* 2. 一般都是小写字母加.* 3. com.公司名称.项目名称.业务模块名称*包说明 阅读全文
posted @ 2021-10-20 19:49 学而不思则罔! 阅读(53) 评论(0) 推荐(0) 编辑
摘要:惰性加载* 定义* 当函数返回值被声明为 lazy 时,函数的执行将被推迟,直到我们首次对此取值,该函 数才会执行。* 这种函数我们称之为惰性函数。* 注意事项* 只能用来修饰 val的变量* 'lazy' modifier allowed only with value definitions* 阅读全文
posted @ 2021-10-20 15:16 学而不思则罔! 阅读(35) 评论(0) 推荐(0) 编辑
摘要:抽象控制* 函数调用的方式* 值调用 : 函数名称(实参)* 名调用 : 函数名称(代码片段)* 示例 : 将代码片段定义为 形参* 语法* def 函数名称(形参名称: =>片段返回值类型) = {函数体}* 注意 : java 中只有值调用,没有名调用* 代码片段必须要有返回值** */ pac 阅读全文
posted @ 2021-10-20 15:15 学而不思则罔! 阅读(26) 评论(0) 推荐(0) 编辑
摘要:package com.dawang.scala.函数式编程_05 /** * @author gaocun * @create 2021-10-20 2:17 PM */ object 递归_07 { def main(args: Array[String]): Unit = { //for循环求 阅读全文
posted @ 2021-10-20 14:50 学而不思则罔! 阅读(20) 评论(0) 推荐(0) 编辑
摘要:闭包* 定义* 如果一个函数,访问了它外部(局部)变量的值,那么这个函数和它所处的环境,称为闭包* 使用场景* 在嵌套函数中,内层函数可以 只用外出函数的任意变量柯里化* 定义* 柯里化(Currying)指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。* 新的函数返回一个以原有第二 阅读全文
posted @ 2021-10-20 14:17 学而不思则罔! 阅读(90) 评论(0) 推荐(0) 编辑
摘要:匿名函数* 语法* (参数列表)=>{函数体}* 示例 (x: Int, y: Int) => {x / y}* 使用场景* 函数作为 实参 传递时* 极简原则* 参数类型可以省略, 会根据 形参自动推断* 参数类型省略后,且当只有一个参数时,可以省略 (),参数>1时,不可省略* 当函数体只有一行 阅读全文
posted @ 2021-10-20 11:47 学而不思则罔! 阅读(82) 评论(0) 推荐(0) 编辑
摘要:高阶函数* 所谓"第一等公民"(first class),指的是函数与其他数据类型一样,* 处于平等地位,可以赋值给其他变量,也可以作为参数,传入另一个函数,* 或者作为别的函数的返回值。*高阶函数用法* 1. 函数可以作为值进行传递 / 声明函数指针* 语法* var 函数指针名称: (参数类型列 阅读全文
posted @ 2021-10-20 11:45 学而不思则罔! 阅读(39) 评论(0) 推荐(0) 编辑
摘要:函数式编程* 函数式编程是种编程方式,它将电脑运算视为函数的计算。* 函数编程语言最重要的基础是λ演算(lambda calculus),* 而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)*函数式编程特性* 闭包、高阶函数、惰性计算、递归、函数是"第一等公民"** */ 阅读全文
posted @ 2021-10-17 19:03 学而不思则罔! 阅读(40) 评论(0) 推荐(0) 编辑
摘要:函数和方法的区别 :* 广义上 函数和方法没有区别* 狭义上 类中的函数称之为方法* 注意 : 方法中可以定义函数,函数中也可以定义函数* 当 函数和方法重名时 用对象名称.方法名称 调用* 区别* 函数没有重载(overload)和重写(overwrite)* 方法可以进行重载(overload) 阅读全文
posted @ 2021-10-17 18:53 学而不思则罔! 阅读(307) 评论(1) 推荐(0) 编辑
摘要:函数定义* 语法* def 函数名称(参数列表): 返回类型 = {* 方法体* [return]* }* 注意事项 : 参数列表 必须标注类型,因为Scala编译器无法推断 参数列表的数据类型** 函数至简原则(重点) - 能省则省* 1. return 可以省略,Scala会将方法体的最后一行的 阅读全文
posted @ 2021-10-17 18:31 学而不思则罔! 阅读(104) 评论(0) 推荐(0) 编辑
摘要:循环中断 break、continue* 说明* 1. scala 去掉了break、continue* break替代方案* 1. 抛出异常* 2. 调用break() 引入 scala.util.control.Breaks* continue替代方案* 1. 使用if语句** try catc 阅读全文
posted @ 2021-10-17 18:03 学而不思则罔! 阅读(93) 评论(0) 推荐(0) 编辑
摘要:while 循环控制* 语法* while (布尔表达式){* 执行代码块* }* 注意事项* 1.while语句没有返回值,也就是返回结果是 Unit()* 2.scala 语法中没有++ 或者--*do...while循环控制* 语法* do{* 执行代码块* } while(布尔表达式)* 说 阅读全文
posted @ 2021-10-17 17:53 学而不思则罔! 阅读(49) 评论(0) 推荐(0) 编辑
摘要:for循环控制* 语法* 1.to 范围数据循环 [x,y]* for (i <- 1 to 3){* printf("%d \n")* }* 2.until 范围数据循环 [x,y)* for (i <- 1 until 3){* printf("%d \n")* }* 3.循环守卫(循环保卫式、 阅读全文
posted @ 2021-10-17 17:42 学而不思则罔! 阅读(64) 评论(0) 推荐(0) 编辑
摘要:Scala中没有switch结构 阅读全文
posted @ 2021-10-17 17:20 学而不思则罔! 阅读(19) 评论(0) 推荐(0) 编辑
摘要:分支控制 if-else* 语法* 1. 单分支* if (条件表达式) {* 执行代码块* }* 2. 双分支* if (条件表达式) {* 执行代码块1* } else {* 执行代码块1* }* 3. 多分支* if (条件表达式1) {* 执行代码块1* } else if (条件表达式2) 阅读全文
posted @ 2021-10-17 11:50 学而不思则罔! 阅读(61) 评论(0) 推荐(0) 编辑
摘要:算数运算符* + - * \ %* +(整号) -(负号)* 关系运算符(比较运算符)* == != < > <= >=* 注意事项* == 与java 的区别 (String)* java 中判断是两个对象的地址指针,equals判断的是 字面量的内容* Scala 中判断的是 字面量的内容逻辑运 阅读全文
posted @ 2021-10-17 11:22 学而不思则罔! 阅读(40) 评论(0) 推荐(0) 编辑
摘要:java中的数据类型* 基本数据类型 (4类八种)* byte short int long* float double* char* boolean* 引用类型 : 对象类型* 说明* java中存在基本类型,基本数据类型不是对象,不能调用方法,所以 才会有有基本类型的包装类* java基本类型的 阅读全文
posted @ 2021-10-17 10:13 学而不思则罔! 阅读(65) 评论(0) 推荐(0) 编辑
摘要:stdin函数* 使用步骤* 导包 : import scala.io.StdIn* 函数说明* StdIn.readLine() : 将stdin 赋值字符串(包括\n) 变量* StdIn.readShort() : 将stdin 赋值short 变量* StdIn.readInt() : 将s 阅读全文
posted @ 2021-10-16 18:51 学而不思则罔! 阅读(68) 评论(0) 推荐(0) 编辑
摘要:1.输出函数* 1.printf("转化说明符\n",变量名称)* 注意事项* 1. c中printf()函数的实现,可以识别格式符* 2.println(string)* 注意事项* 1. 字符串末尾 默认添加 \n 2. 不可识别格式符 2."""带格式字符串""".stripMargin('指 阅读全文
posted @ 2021-10-16 18:39 学而不思则罔! 阅读(135) 评论(0) 推荐(0) 编辑
摘要:* 标识符 : 对变量、方法、函数、object、class、trait的名称,称之为 标识符* 命名规范* 1. 字母或下划线开头,后接 字母、数字、下划线* 2. 操作符开头,且只能包含操作符(/+-*%等)* 3. 当使用关键字时 要用``修饰* 示例 : val `package` = "p 阅读全文
posted @ 2021-10-16 18:17 学而不思则罔! 阅读(254) 评论(0) 推荐(0) 编辑
摘要:* 声明变量-java* dataType varName = value;* final dataType varName = value;* 示例 :* int a = 10;* String name = "dawang";** 声明变量-c* dataType varName = value 阅读全文
posted @ 2021-10-16 18:06 学而不思则罔! 阅读(33) 评论(0) 推荐(0) 编辑
摘要:3.编程范式 Programming Paradigms (面向过程、面向函数(函数式编程)、面向对象、指令式)* 1.面向过程 * Step1 -> Step2 -> Step3 * 示例 : sql的存储过程* 2.面向函数(函数式编程) * 定义函数 f(x) = { Step1 -> Ste 阅读全文
posted @ 2021-10-16 17:37 学而不思则罔! 阅读(41) 评论(0) 推荐(0) 编辑
摘要:3.名称解释* 1.动态编程语言 & 静态编程语言* 动态编程语言 : 在运行时 确定变量数据类型,在 编写代码时,不用指定变量的数据类型 如(python、js)* 静态编程语言 : 在编译期 对变量数据类型检查,可以提前发现错误 如(java、c)* 2.强(数据)类型语言 & 弱(数据)类型语 阅读全文
posted @ 2021-10-16 17:36 学而不思则罔! 阅读(193) 评论(0) 推荐(0) 编辑
摘要:2.Scala语言特点* 1. 运行在java虚拟机(JVM)上,并将 面向对象 和 函数式编程 结合的 静态类型编程语言* 2. Scala是一门多范式语言,支持面向对象 和 函数式编程* 3. Scala源码(xx.scala)会被编译成 字节码文件(xx.class),并运行在jvm上,并可以 阅读全文
posted @ 2021-10-16 17:35 学而不思则罔! 阅读(114) 评论(0) 推荐(0) 编辑
摘要:1.Scala 和 Java的关系* xxx.java + java类库 ->(javac编译器) -> xxx.class -> JVM(java虚拟机) -> 硬件* xxx.scala + java类库 ->(scala编译器) -> xxx.class -> JVM(java虚拟机) -> 阅读全文
posted @ 2021-10-16 17:34 学而不思则罔! 阅读(92) 评论(0) 推荐(0) 编辑
摘要:需求 : 在IDEA中创建Scala项目工程 前提 :本地已安装Scala Step1 : 安装Scala插件(在线) Preferences -> Plugins -> Browse Repositories -> 搜索 scala -> install Step2 : 创建Maven工程 Fil 阅读全文
posted @ 2021-10-08 18:45 学而不思则罔! 阅读(908) 评论(0) 推荐(0) 编辑
摘要:需求 : 在 max & linux 环境上安装scala 环境要求 :JDK1.8 或 JDK11 官网链接 : https://www.scala-lang.org/download/scala2.html Step1 : 检查JDK版本 [root@gaocun110 ~]# java -ve 阅读全文
posted @ 2021-10-08 18:05 学而不思则罔! 阅读(66) 评论(0) 推荐(0) 编辑
摘要:需求 : 将项目中指定class打成jar包 Step1 : Project Structure -> Artifacts -> 点击 + -> 选择JAR -> Empty Step2 : Name = jar包名称 Output directory = jar输出路径 Directory Con 阅读全文
posted @ 2021-10-08 11:02 学而不思则罔! 阅读(318) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示