Scala编程数据结构
2021/9/29 20:12:23
本文主要是介绍Scala编程数据结构,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Kind:
Class:相当于java中的class,但是没有static修饰,里面的属性方法不是静态的
Object:里面的属性和方法都是静态的,可以直接调用
Trait:特质,相当于java中的接口,App就是特质
val和var
val:修饰的变量不可变,有getter方法,没有setter方法
var:修饰的变量可变,有getter方法,也有setter方法
package study3 class Dog { val id =10 //可以用下划线作为一个临时替代,但是使用下划线作为临时替代,必须指定数据类型 var name:String =_ private val hobby = "shopping" def shout(contain:String):Unit={ println(contain) } } class Cat{ } class Animals{ } object enter{ def main(args: Array[String]): Unit = { val d =new Dog //如果没有给赋值,打印输出为null //println(d.name) d.name="zhangsan" println(d.name) d.shout("nihao!!") // . 可以省略 d shout("wo去") println(d.id) } }
JavaBeans规范定义了Java的属性是像getXXX()和setXXX()的方法。
创建一个Bean,使用@BeanProperty注解标识某个属性变量
通过getName、setName访问属性
package study3 import scala.beans.BeanProperty class Person { @BeanProperty var num:Int=_ val id = 11 var name:String = _ //private修饰的方法,只能在伴生类和伴生对象中进行调用 private val hobby = "hobby" //private[this] 修饰的属性和方法只能在本类中使用 private[this] val age =20 def sayHello(): Unit ={ println("Nice to meet you!") } } object Enter1{ def main(args: Array[String]): Unit = { val person = new Person println(person.id) //name_=:这是scala中的setter方法 (第一种方式) //person.name_= ("wangwu") //第二种方式 /*person.name="wangwu" println(person.name)*/ person.setNum(111) println(person.getNum) } }
主构造器和辅助构造器
- 直接定义在类中的事主构造器,辅助构造器可有有任意多个,但是辅助构造器,首行必须调用主构造器或者其他辅助构造器.
- Java中构造器赋值,是赋值在对象当中;scala中构造器赋值,是将所赋的值给到构造器去运行.
- 构造器当中如果没有固定值,必须给赋值,如果构造器当中有默认值,可以选择赋值,如果不赋值,就会采用默认值.如果赋值则使用新赋值.
- 构造器当中参数没有通过val或var修饰,相当于用private修饰.无法通过对象掉用属性,如果用val或var修饰,被修饰的参数提升为属性,通过对象就可以调用
package study3 //主构造器 class Student(var name:String,age:Int) { println(name) println(age) var color = "color" // println(color) //辅助构造器 def this(name:String,age:Int,color:String){ this(name,age) this.color = color println(color) } } 运行 package study3 object Student_Enter { def main(args: Array[String]): Unit = { //调用了主构造器 // val stu = new Student("lihua",18) //根据传参数的多少选择调用 主/辅助构造器 val 流川枫 = new Student("流川枫",17,"red") } }
伴生类和伴生对象
- 一个文件中
- class的名字和object的名字相同
这时,class就是object的伴生类,object就是class的伴生对象
这篇关于Scala编程数据结构的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-29怎么去掉UniApp中字符串的空格?-icode9专业技术文章分享
- 2024-11-29Warning: Cannot modify header information - headers already sent by 报错信息是什么?-icode9专业技术文章分享
- 2024-11-29Excel中实现拖动排序的简易教程
- 2024-11-29如何在Excel中使用拖动排序功能
- 2024-11-28阿里云 ECS课程:新手入门教程
- 2024-11-27Excel中实现拖动排序的简单教程
- 2024-11-27Rocket消息队列资料:新手入门指南
- 2024-11-27rocket消息队资料详解与入门指南
- 2024-11-27RocketMQ底层原理资料详解入门教程
- 2024-11-27RocketMQ项目开发资料:新手入门教程