Scala

在Scala中有三种用来修饰属性的关键字:
   var:定义可以修改的参数
   val:定义不能修改的参数
   private:私有的,修饰后的内容不可再更改,不能访问4c0eefbf7b84403ba247fa44a3ce836e.png

fc4facf3999248efaa8f25300c36a207.png 

 Scala有参类:
   class关键字后的()中定义了参数类型用“,”分隔定义的多个参数,identifier表示参数的名字,type表示参数的数据类型,有参的参数名和参数类型是必须的,而var val关键字是不必需的。
   parameter表示构造参数的名字,type表示参数类型,value表示参数值,new关键字新建对象(直接重新赋值并覆盖之前的参数值)。
Scala主构造器:
   通过public关键字定义一个与类同名的方法。
   语法格式:
      class  类名 ([parameter1,parameter2........]){
      }
Scala辅助构造器:
   通过this关键字定义辅助构造器,用“,”分隔,辅助构造器没有私有化。作用:可以为类提供多种创建对象的方式
   语法格式:
      this  ([parameter1,parameter2........]){
      }
辅助构造器与主构造器的关系
   辅助构造器一定会调用主构造器。当声明一个类时,只有一个构造器。如果想应用辅助构造器,
就一定要调用主构造器。当辅助构造器是类中的第一个辅助构造器时,一定会先调用主构造器,通过this.的方式调用主构造器。
辅助构造器与辅助构造器的关系
   辅助构造器在应用时除了可以调用主构造器之外,还可以调用已经定义的辅助构造器。需要注意的是辅助构造器会先调用主构造器。
 
Scala的伴生类和对象
   在java中如果一个类只允许创建一个对象,那么就把这个对象称为单例对象,创建单例类的条件是构造器必须私有化。在Scala中object是声明单例对象的关键字,identifier表示一个合法的标识符,是对象的名字。
Scala单例对象的声明方式以及与Java的不同之处:
   ( 1 )不是一个类型:通过object关键字创建的是一个对象,不是一个类型。
   ( 2 )不能使用new关键字:声明单例对象时不可以使用new关键字。
   ( 3 )不能传递参数:单例对象无法传递参数。
 
单例对象:用object关键字来创建一个单例对象。单例对象在整个应用程序中只有一个实例,适用于存放工具方法、常量或共享状态。b1a4da622d9f41059946b2ca40f3cd38.png

 伴生类伴生对象:当同名的类和单例对象在同一源码文件时,这个类称为单例对象的伴生类,对象称为类的伴生对象。
伴生对象与伴生类主要有两个要点:
   ( 1 )必须同名。
   ( 2 )必须在同一个源码文件中
Scala的伴生对象和伴生类可以解决如下问题:
    ( 1 )生成静态成员:如果Scala中需要生成类似静态成员的应用场景,可以使用伴生对视频象解决该问题。
   ( 2 )伴生对象和类之间的相互访问:伴生对象和类的私有成员可以相互访问。
   ( 3 )构建单例对象:这一点与静态成员问题相似。536cb2784b714e72b5c967a3e092b6a5.png

联系
1.面向对象的三个特征是?
     封装,继承,多态。
2.定义每个对象都具有的行为动作叫什么?定义每个对象所具有的特征是什么?
     方法 定义对象具有的行为动作;属性 每个对象所具有的特征。
3.在定义class时,使用private修饰的属性有什么特点?
     private修饰后的内容不可再更改
4.什么是主构造器?
     构造器是为类创建对象,是创建对象的入口。
5.如何定义辅助构造器?
     通过this关键字定义辅助构造器。
6.辅助构造器的作用是什么?
     可以为类提供多种创建对象的方式。
7.Scala使用什么关键字来定义单例对象?
     object是声明单例对象的关键字。
8.什么是伴生类和伴生对象,如何定义伴生类和伴生对象?
     当同名的类和单例对象在同一源码文件时,这个类称为单例对象的伴生类,对象称为类的伴生对象。
9.伴生类和伴生对象的应用场景?
     ①生成静态成员;
     ②伴生对象和类之间的相互访问;
     ③构建单例对象。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值