接首篇
整理一下scala的類物件
scala的類,屬性
定義使用方式和j**a中沒什麼區別,主要要注意一下屬性val 和var的賦值問題
class persion2
scala的方法
定義形式
def functionname ([引數列表]):[return type]=
其中返回型別可以不寫,就會根據你函式體的最後一行的型別值來自動生成
如下;def sum(n1:
int, n2:
int)
:int
=還可以寫成這種形式,直接跟=號 ,也是預設最後一行的型別值來自動生成
def sum(n1: int, n2: int)=
scala類的許可權控制
scala中許可權修飾符主要為public(不寫)、protected和private,可以用來修飾類、方法和屬性,如果沒寫許可權修飾符,預設就是public,這個的許可權範圍跟j**a一樣,此外private修飾的,也只能在本類中使用,跟j**a類似。
本類子類
同包類其他類
預設不寫-public
true
true
true
true
protected
true
true
false
false
private
true
false
false
false
scala中的類預設是public ,所以不用像j**a中寫 public class classname {}
另外scala中有更加細粒度的許可權控制
使用protected[x]或private[x]來修飾成員,可以做到對許可權的精確控制,其中x可以是類、包和單例物件
具體可以看這篇部落格中的許可權控制這塊。
scala的建立物件
1)基本語法
val | var 物件名 [:型別] = new型別()
scala的主構造器,輔助構造器
定義形式
class類名(形參列表)
println("父類主構造器")
}class emp(nameparam: string, ageparam: int) extends person08(nameparam, ageparam)
println("子類的主構造器")
}object test
}new emp 帶著引數進入到子類的輔助構造器,但是這裡只是帶引數進到 def this (,,,,)這裡,不執行裡面的函式體,然後繼續往上找,直到父類的主構造器,都是只帶著引數,不執行函式體,也不給裡面的屬性引數賦值,找到源頭父類的主構造器,才開始,賦值屬性引數,執行非方法函式,依次往下。
這裡的執行順序是 父類主構造器-》父類的輔助構造器-》子類的主構造器-》子類的輔助構造器
scala語言是完全物件導向的語言,所以並沒有靜態的操作(即在scala中沒有靜態的概念)。但是為了能夠和j**a語言互動(因為j**a中有靜態概念),就產生了一種特殊的物件來模擬類物件,該物件為單例物件。若單例物件名與類名一致,則稱該單例物件這個類的伴生物件,這個類的所有「靜態」內容都可以放置在它的伴生物件中宣告。
單例物件 類似 於j**a中的 啟動類 放置 public static void main 啟動函式 ,單例物件上公升為伴生物件的途徑就是在類物件檔案中 同時宣告單例,且這個單例物件名字和這個類物件名字一致。
1)基本語法
object person
// (2) 伴生物件對應的類稱為伴生類,伴生物件的名稱應該和伴生類名一致
class person_danli
}可以去這篇部落格看詳細說法
型別檢查和轉換
1)說明
(1)obj.isinstanceof[t]:判斷obj是不是t型別。
(2)obj.asinstanceof[t]:將obj強轉成t型別。
(3)classof獲取物件的類名。
2)案例實操
package com.atguigu.chapter6
class person14 }}
列舉類和應用類
1)說明
列舉類:需要繼承enumeration
2)案例實操
package com.atguigu.chapter6
object test_em
//列舉類
object colorem extends enumeration
1)說明
使用type關鍵字可以定義新的資料資料型別名稱,本質上就是型別的乙個別名,類似c++ 和c 語言中的typedef用法
2)案例實操
package com.atguigu.chapter6
object test_type
}
Scala學習筆記3 類和物件
類 class 和構造器 類的定義形式如下 class myclass a int,b int show 你可以通過以上方式引數化特質,但是你會發現這和 new 類名 引數列表 引數化乙個類例項還是有區別的,因為你看到了對於test變數的兩次println 第一次在特質主體中,第二次是由於呼叫了方法...
Scala學習記錄 1 初識Scala語言
在網上安裝好scala後,配置相應環境變數,並在cmd頁面輸入 scala 後,會顯示歡迎資訊,並進入scala repl介面 注意 命令返回值時,repl會把它賦給乙個新的常量變數,從而可以在以後的運算中引用這個值。這些 res 變數會順序編號,因此總會有乙個唯一的容器來儲存命令的結果。同樣的,可...
scala 學習筆記 物件
new array 100 呼叫構造器this 100 生成乙個含有100個null元素的array 3.物件的update方法 val scores new scala.collection mutable hashmap string,int scores bob 100 呼叫scores.up...