scala学习笔记(三)访问权限、操作符/优先级及条件语句
访问修饰符
在package , class , object 的成员声明时使用private和protected关键字可改变其访问权限,如果包含访问修饰,则是public。
private
私有成员只被该类内部的代码可见。直接看例子。
(new Inner).f()非法而InnerMost的调用则是合法,因为InnerMost在Inner类的内部定义,java会允许内部类访问外部类的私有成员。
protected
scala的protected成员是真正地只被其子类访问。
public
可被任意访问,scala中并无public关键字
保护范围
scala中的访问范围可被qualifier放大,形如private[X]orprotected[X]的修辞符,意为被修辞对象对X的属性。X是package class 或object这样的封装。
workDetail 对professional`包中的任何类可见friends对society包中的任何类可见secrets只对实例方法(this)中的隐式对象可见。
操作符
包括算术、关系、逻辑、位 和 赋值
算术
+ - × / %
关系
== != < > <= >=
逻辑
&& || !
位
取值表
| p | q | p&q | p\ | q | q^q |
|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | |
| 0 | 1 | 0 | 1 | 1 | |
| 1 | 1 | 1 | 1 | 0 | |
| 1 | 0 | 0 | 1 | 1 |
注:
^为异或运算符
其它位操作~ << >> >>> (0填充右移位)
赋值
= += -= ×= /= %= <<= >>= &= ^= |=
运算符优先级
| S.No | Category | Operator | Associativity | ||
|---|---|---|---|---|---|
| 1 | Postfix | () [] | Left to right | ||
| 2 | Unary | ! ~ | Right to left | ||
| 3 | Multiplicative | * / % | Left to right | ||
| 4 | Additive | + - | Left to right | ||
| 5 | Shift | >> >>> << | Left to right | ||
| 6 | Relational | > >= < <= | Left to right | ||
| 7 | Equality | == != | Left to right | ||
| 8 | Bitwise AND | & | Left to right | ||
| 9 | Bitwise XOR | ^ | Left to right | ||
| 10 | Bitwise OR | \ | Left to right | ||
| 11 | Logical AND | && | Left to right | ||
| 12 | Logical OR | \ | \ | Left to right | |
| 13 | Assignment | = += -= *= /= %= >>= <<= &= ^= | = | Right to left | |
| 14 | Comma | , | Left to right |
if-else
scala的if-else与java无二致,支持
