Scala入门02
来源:互联网 发布:ai软件工具介绍 编辑:程序博客网 时间:2024/05/29 18:06
- 练习代码01:
package com.lijie.test//第一个private表示包可见性在com.lijie下面的包可以访问这个类,其他包不能访问//第二个private表示私有构造方法,表示只能在伴生对象才能new//protected也可以修饰表示子类能访问private[lijie] class Scala01 private { //不可以修改 val a = "10086" //可以修改 var b = 123 //伴生对象能使用 private var c: String = "lijie" //本类才能使用 private[this] var d: Int = 10086 //默认没有值,需要用_或者null表示 var e:String = _ //可以使用本类的private[this]属性 private def fun01 = { println(d) } private[this] def fun02 = { println(Scala01.CON) } //可以访问本类的private[this]方法 private def fun03 = { fun02 } //指定包访问 private[test] def fun04 = { println(d) }}//伴生对象,一般和类在同一个文件里面,名字和类一样object Scala01 { //伴生对象里面定义的都是常量,并且可以控制包访问权限 private[lijie] val CON = "lijie" def main(args: Array[String]): Unit = { val s = new Scala01// print(s.a)// s.b = 1232// s.fun01// s.fun04 s.e }}
- 练习代码02
package com.lijie.test//类名后面的是该类的主构造器,如果不写和java一样有个默认的无参构造//如果写了有参数的构造器,无参数的构造器就不提供,和java一样//主构造器参数相当于已经定义了两个成员变量了//前面没有val或者var表示private[this],比如下面的c//可以定义初始值,如下d默认为10011//当定义初始值并且用val,表示对象生成了就不能改变这个值,但是可以在new对象的时候构造函数传入其它值class Scala02(val a: Int, var b: String, c: String,var d:Int = 10011,val e:String = "world") {}object Scala02 { def main(args: Array[String]): Unit = { val obj01 = new Scala02(10086, "lijie","hello",10086,"aaa") //如果定义了默认值,new对象可以不传这个默认值 val obj02 = new Scala02(10086,"lijie","hello") }}
- 练习代码03
package com.lijie.testimport scala.io.Sourceclass Scala03 { //下面表示主构造器里面的方法--------------------------- //这是在主构造器,在new的时候会执行,这里在new时候会被初始化 var a = 10086 //new的时候被执行 println(a) //上面表示主构造器里面的方法--------------------------- //这个是成员方法 def method01(a: Int, b: Int) = { a + b }}object Scala03 { def main(args: Array[String]): Unit = { val obj01 = new Scala03 }}
- 练习代码04
package com.lijie.test//object 单例对象object Scala04 { def main(args: Array[String]): Unit = { val obj01 = Scala04 val obj02 = Scala04 //com.lijie.test.Scala04$@72b6507e //com.lijie.test.Scala04$@72b6507e println(obj01) println(obj02) }}
- 练习代码05
package com.lijie.testclass Scala05(a: Int) {}object Scala05 { def apply() = { println("执行了apply方法") } def apply(name: String) = { println("执行了apply方法" + name) } //技巧,使用apply创建对象 def apply(a: Int) = { new Scala05(a) } def main(args: Array[String]): Unit = { //这样会调用object的apply()的方法 val obj01 = Scala05() val obj02 = Scala05("lijie") //相当于调用的List或Array的apply的apply方法 List(1, 2, 3, 4, 5) Array(1, 2, 3, 4, 5) //可以使用apply方法创建对象,如上面的def apply(a: Int)方法 val obj03 = Scala05(10086) //com.lijie.test.Scala05@66987c7d输出 println(obj03) }}
练习代码06
package com.lijie.test//主构造器class Scala07(val a: Int) { var b: String = _ //辅助构造器 def this(a: Int, b: String) { //必须先调用主构造器 this(a) this.b = b }}//extends App表示应用程序对象,不用main方法就可以执行object Scala07 extends App{ object name extends App { //主构造器创建对象 val obj01 = new Scala07(1) //辅助构造器创建对象 val obj02 = new Scala07(1,"lijie") }}
1 0
- Scala入门02
- scala入门-02基础知识->方法
- 02-Scala复杂类型入门
- Scala入门
- scala 入门
- scala入门
- scala 入门
- scala入门
- Scala入门
- scala入门
- Scala入门
- Scala入门
- scala入门
- scala入门
- Scala详解---------快速入门Scala
- scala学习一:scala入门
- Scala详解---------快速入门Scala
- Scala入门指南
- Java Collection框架
- CNN卷积神经网络应用于人脸识别(详细流程+代码实现)和相应的超参数解释
- Tomcat第一课--构建简单静态资源访问
- 卡尔曼滤波器(KF)和粒子滤波器(PF)简述
- JavaScript 统计当前页面标签个数和种类
- Scala入门02
- 分治策略学习(一)
- Spring事务管理只对出现运行期异常进行回滚
- Expressions and Statemen
- iOS 10 coreData 版本迁移
- 手写字识别C++
- 卷积神经网络训练算法
- windows-caffe ssd配置的一个坑
- 495. Teemo Attacking