Scala基本语法学习(一)

一、注释

注释同Java一样

 //单行注释

 /*多行注释*/

/**
* 文档注释
* @param args
*/

二、变量

var a:Int=10;//定义一个整型变量a,赋值为10

var b=20;//定义一个变量b,赋值为20,省略类型,scala有类型推断能力

 

注:

1)声明变量时,类型可以省略,编译器自动推导 
2)类型确定后就不能修改,说明scala是强类型语言
3)声明变量时必须有初值
4)声明变量时可以用var和val来修饰,var修饰的变量可以改变,val修饰的变量不可以改变(类似Java  final修饰变量一样),var 修饰的对象引用可以改变,val修饰的对象引用则不可以改变,但对象的状态(值)可以改变
 
如:
class Student{
var name:String='张三'
}
var s1=new Student()
s1=new Student()
 
val s2=new Student()
s2=new Student()//报错 s2引用对象不可变
 
s2.name='李四' //正确,对应的值可以修改
 
5)lazy关键字修饰变量用来定义惰性变量,表示延迟加载变量,在变量真正使用的时候才会赋值(懒加载)
惰性变量只能是不可变变量,并且只有在调用惰性变量时,才会去实例化这个变量
java中定义要实现延迟加载(懒加载)需要自己处理,如:
public class JavaLazyDemo {
private String name;

//初始化姓名
private String initName(){
return "zhangsan";
}

public String getName(){
//如果name为空,进行初始化
if(name == null){
name = initName();
}
return name;
}

} 
 
没有lazy修饰时,num1在调用getLazyParam的时候就被赋值

添加lazy修饰后,num1在使用的时候才被赋值,参考打印结果

 

 

 三、输入、输出

先说输出:

print:输出不换行,同System.out.print

println:输出换行,同System.out.println

printf:格式化输出,输出不换行

注:

%d 十进制数字
%s 字符串
%c 字符
%e 指数浮点数
%f 浮点数
%i 整数(十进制)
%o 八进制
%u 无符号十进制
%x 十六进制

 

 

键盘输入:

import scala.io.StdIn//导包
print("请输入内容:")
var line=StdIn.readLine()
println("输入结果:"+line)
运行结果:

scala.io.StdIn支持输入各种类型的数据

 

 四、字符串拼接

1)通过+号连接

 2)concat函数

println(name.concat(":"+age))

 

 

 

 3)printf用法:字符串通过%传值

printf("%s同学,今年%d岁",name,age)

 

 

 4)字符串模板(插值字符串):通过$获得变量值

 五、字符串转义

 

使用斜杠\进行转义,但是 scala中,用三双引号,里面则无须转义,很方便,跟python差不多

 六、scala访问修饰符

 

先说说Java的访问修饰符:

Java访问修饰符包括private,default,protected和public。含义分别表示私有的,默认的,受保护的和公有的访问修饰符。这些访问修饰符既可以修饰类中的属性,又可以修饰类中的方法,而public和default还可以修饰类。在同一个java文件里,公有类有且仅有一个,并且该文件命名为类名.java。

   Java访问修饰符就是确定类中属性或方法的访问权限,换句话说,就是这些属性和方法所起的作用范围。

     private,私有的访问权限,也是最严格的访问权限,仅只能在设置了该权限的类中访问,利用这个访问权限,表现出封装思想。

     default,默认的访问权限,也是可以省略的访问权限,它不仅能在设置了该权限的类中访问,也可以在同一包中的类或子类中访问。

     protected,受保护的访问权限,它除了具有default的访问权限外,还可以在不同包中所继承的子类访问。

     public,公有的访问权限,也是最宽松的访问权限,不仅可以是同一个类或子类,还是同一个包中的类或子类,又还是不同包中的类或子类,都可以访问。

 

scala的访问修饰符基本同Java一致,有private、protected、public,但又有写区别。

scala如果没有指定访问修饰符,默认为public; private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员

私有(Private)成员

用 private 关键字修饰,带有此标记的成员仅在包含了成员定义的类或对象内部可见,同样的规则还适用内部类

保护(Protected)成员

在 scala 中,对保护(Protected)成员的访问比 java 更严格一些。因为它只允许保护成员在定义了该成员的的类的子类中被访问。而在java中,用protected关键字修饰的成员,除了定义了该成员的类的子类可以访问,同一个包里的其他类也可以进行访问

 公共(Public)成员

scala 中,如果没有指定任何的修饰符,则默认为 public。这样的成员在任何地方都可以被访问

 

 七、读取文件

 

 

 

 

posted @ 2020-10-19 14:43  楔子  阅读(350)  评论(0)    收藏  举报