Scala类中的属性默认是private修饰的!但是我们可以直接给其赋值,这时为什么呢

当我们声明了 var name :String 方法时,在底层对应private name
同时会生成 两个public 方法 name() 类似于 getter() 和 public name$_eq()类似于setter

  1. Java是面向对象的编程语言,由于历史原因,Java中还存在着非面向对象的内容:基本类型,nul1,静态方法等。
  2. Scala语言来自于Java,所以天生就是面向对象的语言,而且Scala是纯粹的面向对象的语言,即在Scala中,一切皆为对象。
  3. 在面向对象的学习过程中可以对比着Java语言学习

属性,成员变量

注意事项

  1. 属性的定义语法同变量,示例:[访问修饰符] var属性名称[:类型]=属性值]
  2. 属性的定义类型可以为任意类型,包含值类型或引用类型
  3. Scala中声明一个属性,必须显示的初始化,然后根据初始化数据的类型自动推
    断,属性类型可以省略(这点和Java不同
  4. 如果赋值为null,则一定要加类型,因为不加类型,那么该属性的类型就是Null
    类型

方法的调用机制

  1. 当我们scala开始执行时,先在栈区开辟一个main栈。main栈是最后被销毁
  2. 当scala程序在执行到一个方法时,总会开一个新的栈。
  3. 每个栈是独立的空间,变量(基本数据类型)是独立的,相互不影响(引用类型除外)
  4. 当方法执行完毕后,该方法开辟的栈就会被jvm机回收。