类 小提示:可以通过:paste进入 Scala 的多行模式,输入对应的代码块之后,按ctrl + D退出多行模式,然后再调用刚才输入的函数或者方法进行测试 //定义类,包含 field 以及方法 class HelloWorld { private var name = "0mifang" def sayHello() {print("Hello, " + name)} def getName = name } //创建类对象,并调用其方法 val helloWo…
目录 内部类 extends override和super override field isInstanceOf和asInstanceOf getClass和classOf 内部类 import scala.collection.mutable.ArrayBuffer class Class { class Student(val name: String) {} //此处为内部类 val students = new ArrayBuffer[Student] def getStudent(n…
1 类 (1) scala把主构造函数放到类的定义中,让定义字段及相应方法变得简单起来. class People(age: Int, name: String) scala会自动将这个类变成public,默认的就是public. 如果我们将age这个字段设为 val age: Int,则scala将其定义成为一个private final 字段,并为它创建一个public方法number() 用以取值.如果var name: String,则定义name为private字段,并同时提供publ…
样本类:添加了case的类便是样本类.这种修饰符可以让Scala编译器自动为这个类添加一些语法上的便捷设定. //样本类case class //层级包括一个抽象基类Expr和四个子类,每个代表一种表达式 //样本类自动添加与类名一致的工厂方法 abstract class Expr case class Var(name:String) extends Expr//括号内参数不用加val,默认为加val的字段 case class Number(num:Double) extends Expr…
class Person{ // _ 是占位符; var name : String = _ val age : Int = 27 // private[this] 定义的内容无法外部使用,起到保护作用; private[this] val gender = "male" } //类的构造函数,主构造器的使用; //1.主构造器直接跟在类名后面,主构造器中的参数会被编译成类的字段; //2.主构造器执行的时候会执行类中的所有不包含在方法体中的语句; //3.如果在主构造器函数中没有用…
scala> import scala.reflect._ import scala.reflect._ scala> class Person(@BeanProperty var name: String, val gender: Boolean=true){} defined class Person scala> val p = new Person("bluejoe") p: Person = Person@5905edf2 scala> p.setNa…
Scala中的类 摘要: 在本篇中,你将会学习如何用Scala实现类.如果你了解Java或C++中的类,你不会觉得这有多难,并且你会很享受Scala更加精简的表示法带来的便利.本篇的要点包括: 1. 类中的字段自动带有getter方法和setter方法 2. 你可以用定制的getter/setter方法替换掉字段的定义,而不必修改使用类的客户端,这就是所谓的"统一访问原则" 3. 用@BeanProperty注解来生成JavaBeans的getXxx/setXxx()方法 4. 每个类…
1. 简单类与无参方法 class Person { var age = 0 // 必须初始化字段 def getAge() = age // 方法默认为公有的 } 备注 在Scala中,类并不声明为public. Scala源文件可以包含多个类,所有这些类都具有公有可见性.属性不声明默认为public. 使用类: val p = new Person // 或者new Person() p.age = 23 println(p.getAge()) // 23 调用无参方法时,可以写上圆括号,也…
一.初识类和对象 Scala的类与Java的类具有非常多的相似性,示例如下: // 1. 在scala中,类不需要用public声明,所有的类都具有公共的可见性 class Person { // 2. 声明私有变量,用var修饰的变量默认拥有getter/setter属性 private var age = 0 // 3.如果声明的变量不需要进行初始赋值,此时Scala就无法进行类型推断,所以需要显式指明类型 private var name: String = _ // 4. 定义方法,应指…
1.面向过程-----> 面向对象 面向过程:面向的是完成这件事儿的过程,强调的是完成这件事儿的动作. 把大象塞进冰箱里1.打开冰箱门2.把大象塞进去,亲下大象的屁股3.关闭冰箱门 孙全 瘦小 矮  小屌丝孙全踩着小板凳打开冰箱门孙全找翟盼盼帮忙把大象塞进冰箱里,孙全踩着板凳去亲.孙全踩着板凳关闭冰箱门 翟XX  190cm  非常大力气1.翟自己就能打开冰箱门2.翟自己将大象塞进冰箱里,翟可以自己亲一下.3.翟自己关闭冰箱门 如果我们用面向过程的思想来解决这件事儿,当执行这件事的人的不同的时候…