第二章 scala语言--Object、class

第二章 scala语言–Object、class



前言

今天是学习Scala第二天打卡,本文就就今天的学习做了一些记录。


开始代码之旅

1.object定义一个main方法

代码如下(示例):

object People {
  def main(args: Array[String]): Unit = {
    println("这是一个main方法!!")
  }
}
  1. main方法种没有static,和java不一样,且main方法写在object中才生效
  2. object 相当于Java中的静态代码块,单例的
  3. object 存放静态的field和method
  4. object 有apply()方法,伴生类(参数…)会调用这个方法,创建一个伴生类对象

2.变量、常量

代码如下(示例):

  Integer num = 0  //报错
  var a=3  //变量
      a=4  //赋值不报错
  val b=4  //常量
      b=5  //赋值报错
  1. scala使用var定义变量;使用 val定义常量,取代了final
  2. scala不能像Java那样用基本类型及其包装类进行修饰

3.class、object

代码如下(示例):

 object People {
  private val name = "object:zhangsan"
  def main(args: Array[String]): Unit = {
    var p1 = new People()
    p1.printMsg()
    println(p1.name)
  }
}
class People{
  private val name = "class:zhangsan"
  def printMsg(): Unit = {
    println(s"name: ${People.name}")
  }
}

上面代码的执行结果:
在这里插入图片描述

从运行结果看:class与object互相可以访问彼此私有的内容。


4.构造器

代码如下(示例):

 class People1(sex:String){
  private val  name = "ddddd"
  println(name)
  var a: Int = 3
//  private val p1 = new People1("女") //

  println(s"people$a....")
  def printMsg(): Unit = {
    println(s"sex: ${People1.name}")
  }
}

object People1{
  private val  name = "ccccccc"
  def main(args: Array[String]): Unit = {
    var p1 = new People1("男");
    p1.printMsg()
  }
}
  1. 类里,裸露的代码是默认构造中的。有默认构造
  2. 类名构造器中的参数就是类的成员属性,且默认是val类型,且默认是private
  3. 只有在类名构造其中的参数可以设置成var,其他方法函数中的参数都是val类型的,且不允许设置成var类型

总结

以上就是今天要讲的内容,本文简单列举的学习scala过程中的一些例子。并得到以下总结:

  • 在Object中的内容都是静态的 单例的 安全的 高效

     程序的入口:main也是写在object中,且在object中是可以执行的
    
  • class中的内容就是普通内容了

     main方法写在class中就是一个普通方法,需要new 这个对象去调用该方法
    
  • 在同一个文件中时,object与class名字一致,两者互为伴生关系

    (object)对象是(class)类的伴生对象
    (class)类是(object)对象的伴生类
    互相可以访问彼此私有的内容
    
  • 作用:将静态与非静态的内容分了开来

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值