Scala学習17日目パッケージ、クラス、オブジェクト、メンバー、伴生クラス、伴生オブジェクトアクセス権限実戦徹底詳細


内容:1パック、クラス、オブジェクト、メンバーアクセス権限実戦2伴生クラス、伴生オブジェクトアクセス権限実戦
/** * Scala  、 、  、  、   、         */  

package spark {  
    package navigation {  
    //class  private            ,  Navigator          spark  ,    spark           。
        private[spark] class Navigator{  
    //useStarChart  protected,  useStarChart   nabigation           ,  Navigator       , Navigator      。 
            protected[navigation] def useStarChart(){}           
            class LegOfJourney {  
                private[Navigator] val distance = 100  
            }  
            private[this] var speed = 200 
//private[this]          ,                    。 
        }      
    }  

    package launch{  
        import navigation._  
        object Vehice {  
        //launch  spark  ,      Navigator
            private[launch] val guide = new Navigator  
        }  
    }  
}  
//             ,             。      protected       ,        protected,                。 
class PackageOps_Advanced{  
    import PackageOps_Advanced.power  
    private def canMakeItTrue = power > 10001  
}  

object PackageOps_Advanced {  
    private def power  = 10000  
    def makeItTrue(p: PackageOps_Advanced): Boolean = {  
        val result = p.canMakeItTrue  
        result  
    }  
}