Scala基本面向编程

1.1包

1.1.1基本语法

Scala中基本的package包语法和Java完全一致

package com.yang.bigdata.scala
1.1.2扩展语法

发现package语法过于简单,但是又不能省略,Scala 扩展语法 backage更强大的功能

1.可以让源码文件中多次使用Package关键字

2.源码的物理路径和包没关系

3.明确包的作用域,可以在Package关键字后面增加大括号

4.同一个源码中,子包可以直接访问父包中的内容

5.Scala可以将包当成对象来使用

package com
package yang
package bigdata
package scala {

  class Test {
    def test(): Unit = {
      println("test ...")
    }
  }

        testPackageObject()   //可以访问

package com.yang.bigdata.scala

package object chapter07 {
    def testPackageObject(): Unit = {
      println("testPackageObject ...")
    }
}

1.2导入

1.2.1基本语法

Scala中基本的import导入语法和Java完全一致

import java.util.List
import java.util._ // Scala中使用下划线代替Java中的星号
1.2.2扩展语法

Java中import导入的语法比较单一,Scala对此进行扩展

1.2.2.1 import 可以在程序中任何地方使用
import java.util.Date
   new Date()
1.2.2.2可以在一行中导入同一个包中的多个类
import java.util.{ArrayList,LinkedList,Map}
1.2.2.3 导包
new util.ArrayList()
1.2.2.4 隐藏类
         import java.util._
         import java.sql.{Date=>_,_}
         new Date()
         new util.ArrayList()
         new Timestamp(123)
1.2.2.5scala中导入类的操作,是以相对路径(当前包路径)的方式导入,如果想要使用绝度路径,那么需要增加特殊操作: _root_
println(new _root_.java.util.HashMap())
1.2.2.5给类起别名
    import java.util.{HashMap => JavaHashMap}
    println(new JavaHashMap())

1.3类

1.3.1基本语法

面向对象编程中类可以看成一个模板,而对象可以看成是根据模板所创建的具体事物

// 声明类:访问权限 class 类名 { 类主体内容 } 
class User {
    // 类的主体内容
}
// 对象:new 类名(参数列表)
new User()
1.3.2 扩展语法

Scala中一个源文件中可以声明多个公共类

1.4属性

1.4.1基本语法
class User {
    var name : String = _ // 类属性其实就是类变量
    var age : Int = _ // 下划线表示类的属性默认初始化
}
1.4.2 扩展语法

Scala中的属性其实在编译后也会生成方法

class User {
    var name : String = _
val age : Int = 30
private val email : String = _
@BeanProperty var address : String = _
}

1.5 访问权限

Scala中的访问权限和Java中的访问权限类似,但是又有区别:

1.5.1JAVA访问权限
       java:
       1.private    ->  本类
       2.(default)  ->  本类  本包
       3.protected  ->  本类  本包  子类
       4.public     ->  公共的
1.5.2 Scala访问权限
  scala:
       1. private         => 同类
       2. private[包名]    =>  同包,包私有
       3. protected        => 受保护的 同类和子类
       4. (default)        =>什么都不写就是公共的 没有public关键字

1.6方法

Scala中的类的方法其实就是函数,所以声明方式完全一样,但是必须通过使用对象进行调用

object ScalaMethod{
    def main(args: Array[String]): Unit = {
        val user = new User
        user.login("zhangsan", "admin")
    }
}
class User {
    def login( name:String, password:String ): Boolean = {
        false
    }
}

1.7对象

Scala中的对象和Java是类似的

val | var 对象名 [:类型]  = new 类型()
var user : User = new User()

1.8构造方法

class User() { // 主构造函数
    var username : String = _ 
    def this( name:String ) { // 辅助构造函数,使用this关键字声明
        this() // 辅助构造函数应该直接或间接调用主构造函数
        username = name
}
def this( name:String, password:String ) {
    this(name) // 构造器调用其他另外的构造器,要求被调用构造器必须提前声明
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值