一.初识类和对象 Scala的类与Java的类具有非常多的相似性,示例如下: // 1. 在scala中,类不需要用public声明,所有的类都具有公共的可见性 class Person { // 2. 声明私有变量,用var修饰的变量默认拥有getter/setter属性 private var age = 0 // 3.如果声明的变量不需要进行初始赋值,此时Scala就无法进行类型推断,所以需要显式指明类型 private var name: String = _ // 4. 定义方法,应指…
一.类 1.类的定义 scala语言中没有static成员存在,但是scala允许以某种方式去使用static成员这个就是伴生机制,所谓伴生,就是在语言层面上,把static成员和非static成员用不同的表达方式,class和object,但双方具有相同的package和name,但是最终编译器会把他们编译到一起,这是纯粹从语法层面上的约定.通过javap可以反编译看到.另外一个小魔法就是单例,单例本质上是通过伴生机制完成的,直接由编译器生成一个class对象,这样至少在底层能够统一. //在…
本次是OC的第一节课,主要是学习和理解类与对象 1.面向对象 1> OOP(Object Oriented Programming)面向对象编程. 面向对象以事物为中心,完成某件事情都需要哪些事物来参与,参与该事件的事物都有哪些功能,完成该事件需要这些事物相互协作共同完成,并且完成该事件只是所有事物功能中其中的⼀个⼩功能. 2> 面向对象与面向过程的区别 3> 面向对象优点 面向对象具有良好的可扩展性和重用性. 面向对象可以降低我们代码的耦合度,提高代码的可移植性. 面向对象接近于日常生…
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…
类,字段和方法 类是对象的蓝图.一旦定义了类,就可以用关键字new从类的蓝图里创建对象,类的定义: class ChecksumAccumulator { // class definition goes here } 就能创建对象: scala> new ChecksumAccumulator res0: ChecksumAccumulator = ChecksumAccumulator@64b8f8f4 类定义里,可以放置字段和方法,这些被笼统地称为成员:member.字段,不管是用 val…
样本类:添加了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 pair:     def __init__(self,x,y):         self.x=x         self.y=y if __name__=='__main__':     p=pair(3,4)     print p E:\python2.7.11\python.exe E:/py_prj/python_cookbook/chapter8.py <__main__.pair instance at 0…
这一节我们来看一下类与对象之间的关系. 我们学习java语言,目的就是用java语言对现实生活中的事物进行描写叙述.那么我们如何来描写叙述呢.这就引出了类,我们在实际实现时,是通过类的形式来体现的. 那么对于现实生活中的事物怎样描写叙述呢? 我们在现实生活中对于事物描写叙述通常仅仅关注两个方面,一个是属性,还有一个就是行为. 那么非常自然.计算机的描写叙述就产生出详细的对象. 比方我们要描写叙述一个小汽车.那么我们要怎么描写叙述呢?通过上面关注两个方面,我们非常轻松的从两个方面进行下面描写叙述:…
一.Scala概述 scala是一门多范式编程语言,集成了面向对象编程和函数式编程等多种特性.scala运行在虚拟机上,并兼容现有的Java程序.Scala源代码被编译成java字节码,所以运行在JVM上,并可以调用现有的Java类库. 二.第一个Scala程序 Scala语句末尾的分号可写可不写 HelloSpark.scala object HelloSpark{ def main(args:Array[String]):Unit = { println("Hello Spark!"…
1. 类.字段和方法 Scala 用 class 关键字定义类,一旦定义好一个类,就可以使用 new 关键字创建对象. Scala 使用 new 调用无参构造器时,可以不使用 (),推荐不使用括号: class MyClass { // MyClass 的定义 } val a = new MyClass 在类的定义中,可以填入字段(field)和方法(method),两者统称为成员(member). 字段保留了对象的状态,即数据. 方法使用数据执行计算. 使用 var 或者 val 定义字段,使…