scala-面接概要

2446 ワード

objectとclassの違いは?
objectはクラスの単一のオブジェクトであり,開発者はnewキーワードでインスタンス化する必要はない.オブジェクトの名前がクラス名と同じ場合、このオブジェクトは伴生オブジェクトです.
付き添い人は何ですか.
伴生オブジェクトはクラスと同じ名前のオブジェクトであり、同じ名前のクラスと同じソースファイルに存在し、プライベートプロパティに相互にアクセスできる必要があります.
applyとunapplyの方法の違い
applyメソッドは、与えられたパラメータからオブジェクトを作成するために、伴生オブジェクトでよく使用されます.unapplyメソッドは、オブジェクトからオブジェクトを構築するパラメータを抽出します.
scalaサンプルクラスの利点
object Demo extends App {
  //======================   ===========================
  //1、      apply  ,     new           
  val p = People("yk",22)

  //2、      unapply  ,              
  p match {case People(x,y) => println(x,y)}
  //========================================================
}

case class People(name:String,age:Int)

アクセス修飾子
scalaアクセス修飾子はprivate、protected、publicの3つあります.
アクセス修飾子
アクセス制御
プライベートメンバー
プライベートメンバーが存在するクラスまたはオブジェクトの内部表示
メンバーの保護
メンバーが存在するクラスのサブクラスの表示を保護
共通メンバー
どこでもアクセス可能
trait(特質)とabstract class(抽象クラス)の違いは?
1つのクラスは1つの抽象クラスしか統合できませんが、withキーワードで複数の特質を継承できます.抽象クラスにはパラメータ付き構造関数があり,特質はだめである(例えばtrait(i:Int){}この宣言は誤りである)
クローズドパッケージ