private, protected, public
如果没有指定访问修饰符,默认情况下,Scala 对象的访问级别都是 public。
Scala 中的 private 限定符,比 Java 更严格,在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员。
class Outer{
class Inner{
private def f(){
println("f")
}
class InnerMost{
f() // 正确
}
}
(new Inner).f() //错误
}
在 Scala 中,对保护(Protected)成员的访问比 java 更严格一些。因为它只允许保护成员在定义了该成员的的类的子类中被访问。而在java中,用 protected关键字修饰的成员,除了定义了该成员的类的子类可以访问,同一个包里的其他类也可以进行访问。
package p {
class Super {
protected def f() {println("f")}
}
class Sub extends Super {
f()
}
class Other {
(new Super).f() //错误
}
}
假设A为10,B为20
运算符 | 描述 | 实例 |
---|---|---|
+ | ||
- | ||
* | ||
/ | 除号 | B/A=2,计算结果数据类型跟A、B的定义有关 |
% | 取余 | B%A=0 |
假设A为10,B为20
运算符 | 描述 | 实例 |
---|---|---|
== | 等于 | (A==B) false |
!= | 不等于 | (A!=B) true |
> | ||
< | ||
>= | ||
<= |
假定变量 A 为 1,B 为 0
运算符 | 描述 | 实例 |
---|---|---|
&& | 逻辑与 | (A && B) 运算结果为 false |
|| | 逻辑或 | (A || B) 运算结果为 true |
! | 逻辑非 |
运算符 | 描述 |
---|---|
~ | 取反 |
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
<< | 左移运算符 |
>> | 右移运算符 |
>> | 无符号右移运算符 |
运算符 | 描述 | 实例 |
---|---|---|
= | 赋值运算,右边的操作数赋值给左边的 | C=A+B |
+= | 相加后赋值 | C+=A 相当于C=C+A |
!~
这两个运算符在一起的时候,计算顺序从右到左