您的位置:首页 > 教育 > 培训 > 什么是网络营销环境的外部因素_品牌建设 凝心_北京sem_分析网站

什么是网络营销环境的外部因素_品牌建设 凝心_北京sem_分析网站

2025/5/18 23:16:48 来源:https://blog.csdn.net/2402_82540392/article/details/146951868  浏览:    关键词:什么是网络营销环境的外部因素_品牌建设 凝心_北京sem_分析网站
什么是网络营销环境的外部因素_品牌建设 凝心_北京sem_分析网站

Scala的面向对象思想和Java有一致性,但语法上有差异且功能更丰富。

Scala包

基本语法:使用 package 包名 来定义包。

包的三大作用 :

区分同名类:当存在多个同名类时,包可以将它们区分开来,避免命名冲突。

管理类:在类数量众多时,通过包来组织和管理类,让代码结构更清晰。

控制访问范围:可以设置包内成员的访问权限,限定哪些代码可以访问包内的类、方法等元素 。

包的命名

命名规则:包名只能由数字、字母、下划线、小圆点组成,不能以数字开头,也不能使用关键字。比如 demo.class.exec1 ( class 是关键字所以错误 )、 demo.12a (数字开头所以错误 )。

命名规范:一般采用小写字母加小圆点的形式,常见格式是 com.公司名.项目名.业务模块名  ,例如 com.zpark.oa.model  、 com.sohu.bank.order  

包说明(包语句)

Scala有两种包管理风格。一种和Java类似,每个源文件对应一个包,包名和源文件路径不强制一致,用 . 分隔表示层级,如 com.zpark.scala  。另一种是嵌套风格,像 package com{ package zpark{ package scala{ } } }

包对象

定义

在Scala里,能为每个包定义一个同名的包对象。包对象里定义的成员,是对应包下所有类(class)和单例对象(object)可共享的变量,能被直接访问。例如 package object com { val shareVal = "share" def shareMethod() = {} }  ,这里 shareVal 和 shareMethod  可在 com 包下的类和对象中直接使用。

说明

Java包管理风格下 :若采用Java的包管理方式,包对象一般定义在对应包下的 package.scala 文件中,且包对象名要和包名一致 。

嵌套包管理风格下 :要是用嵌套方式管理包,包对象可与包定义在同一文件里,但得保证包对象与包声明处于同一作用域 。例如 package com { object Outer { val out: String = "out" def main(args: Array[String]): Unit = { println(name) } } package object com { val name: String = "com" } }  , Outer 对象里能直接访问包对象 com 中定义的 name  。

导包说明

常规导入 :和Java类似,可在文件顶部用 import 导入包,这样文件里所有类都能使用导入包中的内容。

局部导入 :在需要使用相关类或对象的作用范围内进行导入即可 。比如在某个方法内导入特定包,仅在该方法内有效。

通配符导入 :使用 import java.util._  ,可导入 java.util 包下的所有类和对象 。

给类起名(重命名导入) :像 import java.util.{ArrayList=>JL}  ,将 java.util.ArrayList 导入并在当前作用域内重命名为 JL  。

导入相同包的多个类 : import java.util.{HashSet, ArrayList}  ,一次导入 java.util 包下的多个类 。

屏蔽类 : import java.util.{ArrayList => _}  ,表示导入 java.util 包下除 ArrayList 之外的其他内容 。

导入包的绝对路径 : new _root_.java.util.HashMap  ,可通过绝对路径导入类,这里 _root_  是Scala里表示根包的特殊标识 。

类和对象

类可看作模板,对象是类的具体实例 。

定义类

回顾Java中的类 :Java中若类是 public 修饰,类名必须和文件名一致,通常一个 .java 文件有一个 public 类 。而Scala没有 public 修饰,一个 .scala 文件能写多个类 。

基本语法 : [修饰符] class 类名 { 类体 }  。Scala里类默认具有公有可见性 ,无需像Java那样用 public 修饰 。

属性

基本语法 :用 [修饰符] var|val 属性名称 [: 类型] = 属性值 定义属性 。 var 定义的属性可变, val 定义的属性不可变 。使用 @BeanProperty 注解,能自动生成规范的 setXxx/getXxx 方法 。

Scala中的访问权限

说明

与Java对比:Java访问权限有 public 、 private 、 protected 和默认(包访问权限 )。Scala能通过类似修饰符实现类似效果,但存在使用差异。

Scala权限特点

默认权限:Scala中属性和方法默认访问权限为 public ,不过Scala没有 public 关键字。

 private 权限:表示私有权限,仅在类内部和伴生对象中可访问。

 protected 权限:受保护权限,Scala中比Java更严格,仅同类、子类可访问,同包其他类无法访问。

 包访问权限: private[包名] 可增加包访问权限,让指定包名下的其他类也能使用 。

Scala方法定义

基本语法:使用 def 方法名(参数列表) [: 返回值类型] = { 方法体 }  定义方法。 def 是定义方法的关键字,参数列表指定传入参数的名称和类型,返回值类型可省略(编译器能自动推导时 ),方法体包含具体执行逻辑。

创建对象

基本语法:用 val | var 对象名 [: 类型] = new 类型()  创建对象。 val 修饰的对象引用不可变(内存地址不变 ),但对象属性值可变; var 修饰的对象引用和属性值都可变 。

Scala构造器

整体概念

和Java类似,Scala创建对象需调用构造方法,且能有多个构造方法。Scala类的构造器分为主构造器和辅助构造器 。

基本语法

主构造器:定义在类名后的圆括号内,如 class 类名(形参列表) { // 主构造器 // 类体 }  ,主构造器的参数会参与类的初始化 。

辅助构造器:使用 def this(形参列表) { // 辅助构造器 }  定义,函数名固定为 this  ,可定义多个,编译器依据参数个数和类型区分 。

说明

辅助构造器特征:辅助构造器函数名是 this  ,可重载(有多个 ),靠参数个数和类型区分 。

调用规则:辅助构造方法不能独立构建对象,必须直接或间接调用主构造方法 ;构造器调用其他构造器时,被调用的构造器需先声明 。

构造器参数

说明:Scala主构造器函数的形参有三种类型 。未修饰参数是局部变量; var 修饰参数可作为类的可变成员属性; val 修饰参数是类的只读属性 。

封装

原理:封装是将数据和操作数据的方法封装,数据被保护,通过授权操作(成员方法 )访问。

Java与Scala对比:Java通过私有化属性,提供 set 和 get 方法实现封装 。Scala属性底层 public 实际是 private  ,通过 get 和 set 方法操作,不推荐照搬Java方式,但为和Java框架兼容,可用 @BeanProperty 注解生成 setXxx/getXxx 方法 。

继承和多态 - 基本语法

使用 class 子类名 extends 父类名 { 类体 }  实现继承 。子类继承父类属性和方法,Scala是单继承(一个子类只能有一个直接父类 )。

Scala 中属性和方法都是动态绑定,而Java 中只有方法为动态绑定

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com