HelloWorld.scala[与对象名一致]
object HelloWorld[首字母大写,驼峰]
class MyFirstScalaClass[首字母大写,驼峰]
def myMethodName()[首字母小写,驼峰]
def main(args: Array[String])[入口函数,格式固定]
package com.runoob {//包中含有的类
class HelloWorld
}
import java.awt.Color//导入*.java文件,其实是开放了通信路径
import java.awt._ // 引入包内所有成员
def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent
... // 因为引入了java.awt,可以省去前面的部分
}
import语句可以出现在任何地方,而不是只能在文件顶部。
import java.awt.{Color, Font}//可以导入多个*.java文件
import java.util.{HashMap => JavaHashMap}// 导入并重命名成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了,名称 _, _是被隐藏的意思(学python的)
//默认情况下,Scala 总会引入 java.lang._ 、 scala._ 和 Predef._
'''
Byte-->Short-->Int-->Long-->Float-->Double
Char
String
Boolean
Unit //用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Null //不懂,暂时很少见使用
Nothing //它是任何其他类型的子类型。
Any //是所有其他类的超类
AnyRef //是Scala里所有引用类(reference class)的基类
'''
Int:0xFFFFFFFF,0777L
Float:1e30f,3.14159f(以正则模式^.*?f$为特征)
scala> val pa=(40,"Foo")//学python的元组
pa: (Int, String) = (40,Foo)
//Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。默认访问级别是 public
//private在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员,Java中允许外部类访问内部类的私有成员。
//Scala中protected成员只允许保护成员在定义了该成员的的类的子类中被访问。Java中用protected关键字修饰的成员,除了定义了该成员的类的子类可以访问,同一个包里的其他类也可访问。
package p{
class Super{
protected def f() {println("f")}
}
class Sub extends Super{
f()
}
class Other{
(new Super).f() //错误,Other类未继承Super类,看不见Super中被protected的f()方法
}
}
//作用域保护,Scala中访问修饰符可以通过使用限定词强调。格式为:private[x]或protected[x],这里的x指代某个所属的包、类或单例对象。如果写成private[x],读作"这个成员除了对[…]中的类或[…]中的包中的类及它们的伴生对像可见外,对其它所有类都是private。
package bobsrocckets{
package navigation{//navigation包中定义了一堆东西
private[bobsrockets] class Navigator{//被私有的类Navigator仅对bobsrockets包中的类可见
protected[navigation] def useStarChart(){}//被保护的方法useStarChart()仅对navigation包中的类及Navigator类和其子类可见
class LegOfJourney{
private[Navigator] val distance = 100//被私有的常量distance仅对Navigator类可见
}
private[this] var speed = 200//被私有的常量distance仅对LegOfJourney类的对象来调用时可见
}
}
package launch{//launch包中定义了一堆东西
import navigation._//导入包内所有成员
object Vehicle{
private[launch] val guide = new Navigator//被私有的常量guide仅对包launch中的类可见
}
}
}
object Test {
def main(args: Array[String]) {
var a = 1
object HelloWorld[首字母大写,驼峰]
class MyFirstScalaClass[首字母大写,驼峰]
def myMethodName()[首字母小写,驼峰]
def main(args: Array[String])[入口函数,格式固定]
package com.runoob {//包中含有的类
class HelloWorld
}
import java.awt.Color//导入*.java文件,其实是开放了通信路径
import java.awt._ // 引入包内所有成员
def handler(evt: event.ActionEvent) { // java.awt.event.ActionEvent
... // 因为引入了java.awt,可以省去前面的部分
}
import语句可以出现在任何地方,而不是只能在文件顶部。
import java.awt.{Color, Font}//可以导入多个*.java文件
import java.util.{HashMap => JavaHashMap}// 导入并重命名成员
import java.util.{HashMap => _, _} // 引入了util包的所有成员,但是HashMap被隐藏了,名称 _, _是被隐藏的意思(学python的)
//默认情况下,Scala 总会引入 java.lang._ 、 scala._ 和 Predef._
'''
Byte-->Short-->Int-->Long-->Float-->Double
Char
String
Boolean
Unit //用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Null //不懂,暂时很少见使用
Nothing //它是任何其他类型的子类型。
Any //是所有其他类的超类
AnyRef //是Scala里所有引用类(reference class)的基类
'''
Int:0xFFFFFFFF,0777L
Float:1e30f,3.14159f(以正则模式^.*?f$为特征)
scala> val pa=(40,"Foo")//学python的元组
pa: (Int, String) = (40,Foo)
//Scala 访问修饰符基本和Java的一样,分别有:private,protected,public。默认访问级别是 public
//private在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员,Java中允许外部类访问内部类的私有成员。
//Scala中protected成员只允许保护成员在定义了该成员的的类的子类中被访问。Java中用protected关键字修饰的成员,除了定义了该成员的类的子类可以访问,同一个包里的其他类也可访问。
package p{
class Super{
protected def f() {println("f")}
}
class Sub extends Super{
f()
}
class Other{
(new Super).f() //错误,Other类未继承Super类,看不见Super中被protected的f()方法
}
}
//作用域保护,Scala中访问修饰符可以通过使用限定词强调。格式为:private[x]或protected[x],这里的x指代某个所属的包、类或单例对象。如果写成private[x],读作"这个成员除了对[…]中的类或[…]中的包中的类及它们的伴生对像可见外,对其它所有类都是private。
package bobsrocckets{
package navigation{//navigation包中定义了一堆东西
private[bobsrockets] class Navigator{//被私有的类Navigator仅对bobsrockets包中的类可见
protected[navigation] def useStarChart(){}//被保护的方法useStarChart()仅对navigation包中的类及Navigator类和其子类可见
class LegOfJourney{
private[Navigator] val distance = 100//被私有的常量distance仅对Navigator类可见
}
private[this] var speed = 200//被私有的常量distance仅对LegOfJourney类的对象来调用时可见
}
}
package launch{//launch包中定义了一堆东西
import navigation._//导入包内所有成员
object Vehicle{
private[launch] val guide = new Navigator//被私有的常量guide仅对包launch中的类可见
}
}
}
object Test {
def main(args: Array[String]) {
var a = 1