最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Scala數(shù)據(jù)類型與變量常量及類和對象超詳細講解

 更新時間:2022年12月14日 11:41:24   作者:Cry丶  
本文內(nèi)容主要分為3節(jié),依次講解:Scala的數(shù)據(jù)類型有哪些? 變量常量如何使用? 類和對象如何理解? 受限于博主的大腦容量,大概是無法做到事無巨細的,不過其實也沒必要那么"細",抓住主要脈絡(luò),加上大量的練習(xí),融會貫通只不過是時間的問題

一、數(shù)據(jù)類型

簡記: 所有基礎(chǔ)類型基本與Java的包裝類等同,唯一有不同的Int(Scala),Integer(Java),注意這個就好

Unit, Null, Nothing, Any, AnyRef, AnyVal,這幾個除了Null乍一眼會有些陌生,不要怕,上總結(jié):

首先是層級圖:

然后是表格:

補丁: 記住Any是所有類型的超類,也就是父類; Nothing是所有類型的子類; Null就是Null; None用在Map類型的value值類型里

二、變量和常量

1.定義變量: var a = 10; 或 var a:Int = 10;

2.定義常量: val a = 10; 或 val a:Int = 10;

建議: scala的理念是簡潔優(yōu)先,一般不會寫出返回類型,不過調(diào)試代碼時我的習(xí)慣還是寫出來,可以使用IDE自動生成

Scala會對每個變量屬性自動生成類似Java中的getter/setter方法,對每個常量生成getter方法

1.變量的getter/setter:

point為一個我們創(chuàng)建的對象,現(xiàn)在要對他的x屬性賦值,以及獲取他的x屬性

 // setter()
 point.x_=(200)
 // getter()
 println("x = " + point.x)

2.常量的getter: 同上

建議:也可以顯示寫出來getter/setter方法,相當(dāng)于自定義方法,可能更符合習(xí)慣

三、類和對象

謹記:Scala中類還是我們熟悉的class,但是對象object有2個概念,一個是類的引用我們可以稱之為類的對象;另一個是object對象,類似Java中的靜態(tài)工具類,先這么記住,為避免混淆,下文在說對象時一律指Scala中特有的object,類生成的對象后文統(tǒng)一使用類的引用來指代

3.1 類

# 很傳統(tǒng)的方式, 調(diào)用時直接: val person = new Person() 
或者 val person = new Persion  // 無參構(gòu)造可以不用寫小括號
class Person {
  val name = "Cry";
  val age = "77";
}
# 帶參數(shù)的類定義, 調(diào)用時: val person = new Person("Cry",777)
class Person(xName: String, xAge: Int) {
  val name = xName
  val age = xAge
  var gender = 'm'
}
#自定義構(gòu)造方法: 
class Person(xName: String, xAge: Int) {
  val name = xName
  val age = xAge
  var gender = 'm'
  def this(yName: String, yAge: Int, yGender: Char) {
    this(yName,yAge)
    gender = yGender
  }
   def sayName(): Unit = {
    println("Hello Scala..." + this.name)
  }
}

3.2 對象

object中不可以傳參,當(dāng)創(chuàng)建一個object時,如果傳入?yún)?shù),那么會自動尋找object中的相應(yīng)參數(shù)個數(shù)的apply方法。

object Person{
  var name = "Cry"
  def apply(name:String): Unit = {
    println("My name is " + name)
  }
}
# 調(diào)用: val person = Person("Cry777")

3.3 伴生類和伴生對象

在同一個Scala文件中, class名稱和Object名稱一樣時, 這個類叫做這個對象的伴生類, 這個對象叫做這個類的伴生對象, 他們之間可以互相訪問私有變量

3.4 Scala的main函數(shù)只能寫在object里

可以理解成main函數(shù)是靜態(tài)的,所以推導(dǎo)而出的結(jié)論

object Lesson_ClassAndObj {
  def main(args: Array[String]): Unit = {
    val person = new Person("zhangsan", 18)
    val person2 = new Person("lisi", 18, 'f')
    Person("zhaoliu")
  }
}

總結(jié)

1.Scala object相當(dāng)于java中的工具類, object中定義的全是靜態(tài)的, object不可以傳參,對象要傳參,使用apply()方法

2.Scala中定義變量用var, 自定義常量用val, 變量可變, 常量不可變. 變量和常量類型可以忽略不寫,會自動推斷

3.Scala中每行后面都會有分好自動推斷機制, 不用顯式寫出";"

4.建議在Scala中命名使用駝峰命名法

5.Scala類中可以傳參, 傳參一定要指定類型, 有了參數(shù)就有了默認的有參構(gòu)造方法, 類中的屬性默認有g(shù)etter/setter方法

6.類中重寫構(gòu)造時, 構(gòu)造中第一行必須先調(diào)用默認的構(gòu)造. def this(…){…}

7.Scala中檔new class時, 類中除了方法不執(zhí)行【除了構(gòu)造方法】, 其他語句都執(zhí)行

8.在同一個Scala文件中, class名稱和Object名稱一樣時, 這個類叫做這個對象的伴生類, 這個對象叫做這個類的伴生對象, 他們之間可以互相訪問私有變量

到此這篇關(guān)于Java Scala數(shù)據(jù)類型與變量常量及類和對象超詳細講解的文章就介紹到這了,更多相關(guān)Java Scala內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java關(guān)鍵字詳解之final static this super的用法

    Java關(guān)鍵字詳解之final static this super的用法

    this用來調(diào)用目前類自身的成員變量,super多用來調(diào)用父類的成員,final多用來定義常量用的,static定義靜態(tài)變量方法用的,靜態(tài)變量方法只能被類本身調(diào)用,下文將詳細介紹,需要的朋友可以參考下
    2021-10-10
  • ThreadLocal內(nèi)存泄漏問題解決方案

    ThreadLocal內(nèi)存泄漏問題解決方案

    這篇文章主要介紹了ThreadLocal內(nèi)存泄漏問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • Java抽象的本質(zhì)解析

    Java抽象的本質(zhì)解析

    對于面向?qū)ο缶幊虂碚f,抽象是它的一大特征之一,在 Java 中可以通過兩種形式來體現(xiàn)OOP的抽象:接口和抽象類,下面這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)抽象的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • 教你在一分鐘之內(nèi)理解Java Lambda表達式并學(xué)會使用

    教你在一分鐘之內(nèi)理解Java Lambda表達式并學(xué)會使用

    今天給大家?guī)У奈恼率荍ava8新特性的相關(guān)知識,文章圍繞著如何在一分鐘之內(nèi)理解Java Lambda表達式并學(xué)會使用展開,文中有非常詳細的介紹,需要的朋友可以參考下
    2021-06-06
  • SpringBoot項目如何打包成war包

    SpringBoot項目如何打包成war包

    使用SpringBoot 開發(fā)項目,由于內(nèi)置了Tomcat,所以項目可以直接啟動,部署到服務(wù)器的時候,直接打成 jar 包,就可以運行了,這篇文章主要介紹了SpringBoot項目如何打包成war包,需要的朋友可以參考下
    2024-07-07
  • Java中synchronized鎖的深入理解

    Java中synchronized鎖的深入理解

    這篇本文主要對Java中synchronized鎖進行深入理解,文中通過synchronized的優(yōu)化,synchronized的實現(xiàn)原理及synchronized的升級過程來介紹Java中synchronized鎖,感興趣的同學(xué)可以跟著小編一起來學(xué)習(xí)
    2023-05-05
  • Java Email郵件發(fā)送簡單實現(xiàn)介紹

    Java Email郵件發(fā)送簡單實現(xiàn)介紹

    電子郵件從用戶電腦的郵件軟件,例如Outlook,發(fā)送到郵件服務(wù)器上,可能經(jīng)過若干個郵件服務(wù)器的中轉(zhuǎn),最終到達對方郵件服務(wù)器上,收件方就可以用軟件接收郵件
    2022-11-11
  • Java數(shù)據(jù)結(jié)構(gòu)之稀疏數(shù)組的實現(xiàn)與應(yīng)用

    Java數(shù)據(jù)結(jié)構(gòu)之稀疏數(shù)組的實現(xiàn)與應(yīng)用

    這篇文章主要為大家詳細介紹了Java數(shù)據(jù)結(jié)構(gòu)中稀疏數(shù)組的實現(xiàn)與應(yīng)用,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的可以了解一下
    2022-10-10
  • IDEA導(dǎo)入jar包的完整實現(xiàn)步驟

    IDEA導(dǎo)入jar包的完整實現(xiàn)步驟

    由于導(dǎo)入jar包項目存在很多不確定的問題,導(dǎo)致每次都需要調(diào)試、配置好多遍,對此特意記錄下來,這篇文章主要給大家介紹了關(guān)于IDEA導(dǎo)入jar包的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • java連接zookeeper實現(xiàn)zookeeper教程

    java連接zookeeper實現(xiàn)zookeeper教程

    這篇文章主要介紹了java連接zookeeper實現(xiàn)zookeeper教程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論

疏附县| 红河县| 双鸭山市| 宣城市| 津南区| 土默特左旗| 察雅县| 鹤峰县| 北宁市| 徐汇区| 长宁县| 山阳县| 越西县| 阳泉市| 阿拉善盟| 长顺县| 罗城| 扶绥县| 汝州市| 宁南县| 乐昌市| 长沙市| 汉寿县| 普格县| 天祝| 襄城县| 双江| 盘锦市| 肇州县| 察哈| 二手房| 阳山县| 临沭县| 阳信县| 东丽区| 乌拉特中旗| 水富县| 德惠市| 阳曲县| 泰安市| 乐至县|