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无二致,支持