object demo1 {
def main(args: Array[String]): Unit = {
//面向对象编程
val Cat = new Cat()
Cat.name = "小白" //这个地方其实访问的是setter方法
Cat.age = 23
Cat.color = "白色"
}
//创建对象模板
//说明:编译过后class只有一个文件并且类型是public var没有给定修饰符的话默认编译后是private
//同时一个属性对应两个方法 name()===>getter name_$eq() ===>setter
class Cat {
//生明属性,给定默认值
var name: String = ""
var age: Int = _ //_代表给定默认值 0
var color: String = _ //_代表给定默认值 ""
}
}
查看底层生成的文件:
scala源文件中可以包含多个类,并且默认是public 不要加上修饰符public,如果加上的话会报错
object demo1 {
def main(args: Array[String]): Unit = {
//集合反转
var list= List(1,"dfs",0.0)
println(list.reverse)
//var range:Range=(0 to 4).range 也是一个集合
println((0 to 4).reverse)
/* /*@`inline`*/ final override def foreach[@specialized(Unit) U](f: Int => U): Unit = {
// Implementation chosen on the basis of favorable microbenchmarks
// Note--initialization catches step == 0 so we don't need to here
if (!isEmpty) {
var i = start
while (true) {
f(i)
if (i == lastElement) return
i += step
}
}
}*/
//foreach接收一个函数然后函数处理foreach 的结果
range.foreach(println)
//打印0-10
for(item<- 0 to 10){
println(item)
}
// //打印10-0
for(i<- (0 to 10).reverse){
println(i)
}
}
}
for(i<-"a hello"){
println(i)
//打印字符的额unicode值
println(i.toLong)
}
练习
object demo1 {
def main(args: Array[String]): Unit = {
//定义一个变量
var sum:Long=0
//求和hello
"hello".foreach(fsum)
//定义一个函数
def fsum(char: Char):Unit={
sum+=char.toLong
}
println("第一次输出"+sum)
//以上代码也可以写成
"hello".foreach(sum+=_.toLong)
println("第二次输出"+sum)
}
}
//字符串方法
var s2:String= "hello".take(1)
println(s2) 返回字符串的前n个字符串
var s:String="hello".drop(1)
println(s) 返回字符串舍掉前n个之后的字符串
如果一个变量为{}如下,他的返回值是()也就是unit 类似java中的void
object demo1 {
def main(args: Array[String]): Unit = {
var r ={}
println(r)
println("此函数的返回值类型"+r.isInstanceOf[Unit])
}
}