5、scala面向对象-类】的更多相关文章

一.类 1.定义类 ##定义并调用 scala> :paste // Entering paste mode (ctrl-D to finish) class HelloWord { private var name = "Leo" def sayHello() {print("Hello, " + name)} def getName = name } // Exiting paste mode, now interpreting. defined clas…
1.单例类 package com.zzzy class AAA {//单例 /*//java 思路--私有化构造方法,提供公开的getAAA 行不通 private def this(){ this() } def getAAA():AAA={ val aaa = new AAA() return aaa } */ } package com.zzzy //单例类 //伴生类 class BBB private(){//1私有化构造方法 } //伴生对象 object BBB{ //不写app…
package com.zzy import scala.beans.BeanProperty class Aclass { @BeanProperty//生成get和set方法对于其他框架里对标准的scalaBean的使用有重要作用 var name="" private var age=0//屏蔽一些不合法的操作,提高程序的健壮性 def getAge()=age def setAge(age:Int):Unit={ if (age>=0){ this.age=age }el…
在Scala中,你几乎可以在任何语法结构中内嵌任何语法结构.如在类中可以再定义一个类,这样的类是嵌套类,其他语法结构也是一样. 嵌套类类似于Java中的内部类. Scala嵌套类的使用1 请编写程序,定义Scala 的成员内部类和静态内部类,并创建相应的对象实例.   Scala嵌套类的使用2 方式1 内部类如果想要访问外部类的属性,可以通过外部类对象访问.即:访问方式:外部类名.this.属性名   方式2内部类如果想要访问外部类的属性,也可以通过外部类别名访问(推荐) 即:访问方式:外部类名…
昨晚听了王家林老师3000门徒spark系列课程的第二课,讲述了scala面向对象知识,并且带着过了一遍Spark核心类:SparkContent,RDD的代码,下面写一下心得: RDD是抽象类,实现了Serializable和Logging接口,有很多类继承了RDD类来实现不同功能的RDD. SparkContent默认构造器传入config:SparkConf  实现了Logging和ExecutorAllocationClient接口. 类默认构造器会执行类中没有在成员函数中的所有代码.…
一.类的定义 Scala类的定义跟JAVA中类的定义基本是一样的. 示例 class ChecksumAccumulator{ var sum = 0;//Scala默认关键字为public private var sum = 0: def add(b : Byte) : Unit ={ sum+=b; } def checkSum() : Int = { return ~(sum & 0xFF) + 1; } } Scala中,当一个方法只会计算一个返回结果的表达式时,可以不用写花括号. Sc…
8.1 静态属性和静态方法 8.1.1 静态属性-提出问题 有一群小孩在玩堆雪人,不时有新的小孩加入,请问如何知道现在共有多少人在玩?请使用面向对象的思想,编写程序解决 8.1.2 基本介绍 -Scala中静态的概念-伴生对象 Scala语言是完全面向对象(万物皆对象)的语言,所以并没有静态的操作(即在Scala中没有静态的概念).但是为了能够和Java语言交互(因为Java中有静态概念),就产生了一种特殊的对象来模拟类对象,我们称之为类的伴生对象.这个类的所有静态内容都可以放置在它的伴生对象中…
scala 面向对象之 继承 scala   1.extends Scala中,让子类继承父类,与Java一样,也是使用extends关键字 继承就代表,子类可以从父类继承父类的field和method:然后子类可以在自己内部放入父类所没有,子类特有的field和method:使用继承可以有效复用代码   class Person { private var name = "leo" def getName = name } class Student extends Person {…
既然是泛函编程,多了解一下函数自然是免不了的了: 方法(Method)不等于函数(Function) 方法不是函数但可以转化成函数:可以手工转换或者由编译器(compiler)在适当的情况下自动转换.反向转换则不然:函数是无法转换到方法的.先看看下面的例子: scala> def aMethod(x: Int): Int = x + 10 aMethod: (x: Int)Int scala> val aFunction = (x: Int) => x + 10 aFunction: I…
类 / 对象 [<快学Scala>笔记] 一.类 1.Scala中的类是公有可见性的,且多个类可以包含在同一个源文件中: class Counter{ private var value = 0 //类成员变量必须初始化,否则报错 def increment(){ //类中的方法默认是公有可见性 value += 1 } def current() = value //对于类中的“取值方法”,在定义时可省略掉括号,直接 def current = value } Scala类的使用: Scal…
http://blog.csdn.net/pipisorry/article/details/52902609 Scala类和对象 类是对象的抽象,而对象是类的具体实例.类是抽象的,不占用内存,而对象是具体的,占用存储空间.类是用于创建对象的蓝图,它是一个定义包括在特定类型的对象中的方法和变量的软件模板. 类的创建和实例化 class Point(xc: Int, yc: Int) { var x: Int = xc var y: Int = yc def move(dx: Int, dy: I…
Scala的类层级 Scala里,每个类都继承自通用的名为Any的超类. 因为所有的类都是Any的子类,所以定义在Any中的方法就是"共同的"方法:它们可以被任何对象调用. Scala还在层级的底端定义了一些类,如Null和Nothing,扮演通用的子类. 即,Any是所有其他类的超类,Nothing是所有其他类的子类. 类层级图如下: Any类 层级的顶端是Any类,定义了下列方法: final def ==(that: Any): Boolean final def !=(that…
1.定义一个类 class Person{ //用val修饰的变量是只读属性,有getter但是没有setter val id ="111" //用var修饰的变量既有getter又有setter var age:Int =18 //类私有字段,只能在类的内部使用,只有伴生对象内可以使用 private var name:String ="aaa" //对象是由字段,访问权限更加严格,只有person类的方法才能访问当前对象的pet字段 private[this]v…
一.类 1.类的定义 scala语言中没有static成员存在,但是scala允许以某种方式去使用static成员这个就是伴生机制,所谓伴生,就是在语言层面上,把static成员和非static成员用不同的表达方式,class和object,但双方具有相同的package和name,但是最终编译器会把他们编译到一起,这是纯粹从语法层面上的约定.通过javap可以反编译看到.另外一个小魔法就是单例,单例本质上是通过伴生机制完成的,直接由编译器生成一个class对象,这样至少在底层能够统一. //在…
Scala进阶之路-Scala特征类与unapply反向抽取 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Scala特征类分析 1>.Unit 答:用于定义返回值类型,它的值只有一个,即"()",它有点类似于Java的void,只不过Java的返回值没有变现形式. 2>.null 答 :一般多用于Scala语法赋值时默认的空值,比如:“var blog:String = _”,那么变量中blog的值就为null. 3>.Nothing 答:N…
Php面向对象 – 类常量 类常量:类中,保存执行周期内,不变的数据. 定义: constkeyword const 常量名 = 常量值 样例: class Student { public  $stu_id; public  $stu_name; public  $stu_gender; const  GENDER_MALE = '男'; const  GENDER_FEMALE = '女'; } 类常量不受訪问限定修饰符的限制 訪问: 类::常量名 样例: class Student { p…
不使用C++时,很多C语言新手可能认为C语言缺乏了面向对象和抽象性,事实上,C语言通过某种组合方式,可以间接性的实现面对对象和抽象. 不过多态和继承这种实现,就有点小麻烦,但是依然可以实现. 核心: 利用 void 类型指针,可以指向任意类型指针. //基本代码 void* p; p = (void*) "HelloWorld"; char* str; str = (char*) p; printf("%s",str);//输出 HellWord 通过这个我们就可以…
Scala的类继承 extend Scala扩展类的方式和java一样使用extends关键字 class Employee extends Person { } 与java一样,可以在定义的子类重写超类的方法,定义父类不存在的属性和方法 override class Person { override def toString = getClass.getName +"name=" } 在Scala中调用的超类的方法和java完全一致,使用super关键字 public class…
Python 面向对象 —— 类和实例 类 虽然 Python 是解释性语言,但是它是面向对象的,能够进行对象编程.至于何为面向对象,在此就不详说了.面向对象程序设计本身就很值得深入学习,如要了解,请参阅网上其他的资料. 面向对象最重要的概念就是类(Class)和实例(Instance),牢记 类 是抽象的模板,比如Student类,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同. 以Student类为例,在Python中,定义类是通过 class…
php面向对象类中常用的魔术方法   1.__construct():构造方法,当类被实例化new $class时被自动调用的方法,在类的继承中可以继承与覆盖该方法,例: //__construct() class construct{ public function __construct(){ $this->var = "this is var"; } } class con2 extends construct{ public function __construct(){…
Java面向对象-类与对象 类与对象的关系 我们通俗的举个例子,比如人类是一种类,张三这个人就是人类的具体的一个个体,也就是java中的对象:这就是一个类与对象的关系: 类的定义 下面看实例 类的创建和使用 看下面实例 我们在com.java1234.chap03.sec01包下新建一个Person类 package com.java1234.chap03.sec01; /** * Person类 文件名和类名必须一致 * @author user * */ public class Perso…
基本类的使用:(初) package com.dtspark.scala.basics /** * trait是一个接口 * 接口的第一次继承用extends,多继承时用with * 多继承时,如果这些接口中都有同样的方法时,则是从右往左的顺序执行 * 抽象类不能实例化 * 类继承的时候不继承伴生对象object,只能看见类的接口,而其父类可以使用自己伴生对象中的方法 * isInstanceOf 和 asInstanceOf的使用 * 前者是判断是不是其子类,后者是进行类型转换,但必须是父子之…
Python之面向对象类和对象 定义一个类:class 定义类的语法: class Test(object): """ 类里定义一类事物共同的技能. 可以是变量,也可是函数. """ camp = "Demacia" def attack(self): print("attack") 如何使用类:类的用法----实例化和引用自己的属性 一.内置类 例如int() 加参数就能用. x=int(10) prin…
不使用C++时,很多C语言新手可能认为C语言缺乏了面向对象和抽象性,事实上,C语言通过某种组合方式,可以间接性的实现面对对象和抽象. 不过多态和继承这种实现,就有点小麻烦,但是依然可以实现. 核心: 利用 void 类型指针,可以指向任意类型指针. 1 //基本代码 2 void* p; 3 p = (void*) "HelloWorld"; 4 5 char* str; 6 str = (char*) p; 7 8 printf("%s",str);//输出 He…
面向对象基本概述.封装 01_面向对象(面向对象思想概述) * A:面向过程思想概述    * 第一步    * 第二步 * B:面向对象思想概述    * 找对象(第一步,第二步) * C:举例    * 买煎饼果子    * 洗衣服 * D:面向对象思想特点    * a:是一种更符合我们思想习惯的思想    * b:可以将复杂的事情简单化    * c:将我们从执行者变成了指挥者        * 角色发生了转换* E:面向对象开发    * 就是不断的创建对象,使用对象,指挥对象做事情.…
Java面向对象——类的成员 摘要:本文主要介绍了类的常见成员. 属性 属性称为成员变量,一般来讲不用赋值,因为有默认值,另外显式赋值没有意义会导致所有由此类创建对象都是此值. 默认值 Boolean类型成员变量的默认值是false. Int类型成员变量的默认值是0. Double类型成员变量的默认值是0.0. String类型成员变量的默认值是null. Char类型成员变量的默认值是\u0000. 局部变量 定义:方法中,语句块中,方法参数中定义的变量. 作用域:方法内部,语句块内部.其他方…
函数只能面向过程,来回互相调用后顺序执行, 简单的编码项目,还能应付的过来, 复杂的大型项目,调用多了,就会乱. 如何才能不乱呢,可尝试下, 面向对象类的概念, 将现实世界的事物抽象成对象,将现实世界中事物的关系抽象成类, 即要秉着"万物皆对象,一切皆可归类"的中心思想, 去建立你的代码模型. 一听特别晕乎,我也一样, 我学Python的时候,写了将近大半年的面向过程函数, 由于我也无法深入理解到面向对象类的概念, 当时就是无法将代码写成面向对象类的形式. 直到自己去慢慢学习面向对象类…
1 Scala包的基本介绍 和Java一样,Scala中管理项目可以使用包,但Scala中的包的功能更加强大,使用也相对复杂些,下面我们学习Scala包的使用和注意事项. 2 Scala包快速入门 使用打包技术来解决上面的问题,不同包下Dog类 package com.atguigu.chapter02.xh class Cat { } package com.atguigu.chapter02.xm class Cat { } var cat1 = new com.atguigu.chapte…
1 如何定义类 [修饰符] class 类名 { 类体 } 定义类的注意事项 1)scala语法中,类并不声明为public,所有这些类都具有公有可见性(即默认就是public), 2)一个Scala源文件可以包含多个类.   2 属性 属性是类的一个组成部分,一般是值数据类型,也可是引用类型. 属性/成员变量 1)属性的定义语法同变量,示例:[访问修饰符] var 属性名称 [:类型] = 属性值 2)属性的定义类型可以为任意类型,包含值类型或引用类型 3)Scala中声明一个属性,必须显示的…
类是对象的蓝图.一旦你定义了类,你就可以用关键字new从类的蓝图里创建对象.比方说,如果给出了类的定义: class ChecksumAccumulator { // class definition goes here } 你就能创建ChecksumAccumulator对象: new CheckSumAccumulator 类定义里,可以放置字段和方法,这些被笼统地称为成员:member.字段,不管是用val或是用var定义的,都是指向对象的变量方法,用def定义,包含了可执行的代码.字段保…