180125_scala笔记1

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值