scala的Class
先看类的定义:
package com.test.scala.test import scala.beans.BeanProperty /**
* scala 的类
*/
//定义一个scala的类
class ScalaClass { private var count:Int=0; def incremet():Int={
count+=1
count
} def value=incremet() //就这样定义一个age属性,它会自动生成get 与 set 方法,age对应的get方法为 对象.age,set方法为 对象age= 赋值即可。
//这个只是针对var 定义的字段
var age=23; //如果是val定义的字段,那么它只有get方法,如:
val hellworld="hellowold"; private[this] var b=9;//这代码可以限制对象访问 //如果你想与javabean相互操作,就采用@BeanProperty,此属性会生成对应的get与set方法
@BeanProperty var sex="男"; var name="" //我们定义两个辅助构造器
def this(name:String){
this()
this.name=name;
} def this(name:String,age:Int){
this(name)
this.age=age
} //主构造器用类名来实现,如
class ScalaClass(aa:String){
println("主构造器打印的内容:"+aa)
} }
package com.test.scala.test import scala.collection.mutable.ArrayBuffer class NetWork {
class Member(val name:String){
val contancts=new ArrayBuffer[NetWork#Member]
}
val members=new ArrayBuffer[NetWork#Member] def join(name:String)={
val m=new Member(name)
members+=m
m
}
}
最后看类的生成:
package com.test.scala.test import java.nio.channels.NetworkChannel object ScalaClassTest { def main(args: Array[String]): Unit = { var test=new ScalaClass("sss")
test.incremet();
println(test.incremet());
println(test.incremet())
println(test.value) //对象字段赋值与取值哈
test.age=33;
println(test.age) test.setSex("女")
println(test.getSex()) //定义一个时间
val time=new java.util.Date().getTime
println(time) var chatter=new NetWork var fred=chatter.join("fred")
var wills=chatter.join("wills") fred.contancts+=wills } }
scala的Class的更多相关文章
- jdb调试scala代码的简单介绍
在linux调试C/C++的代码需要通过gdb,调试java代码呢?那就需要用到jdb工具了.关于jdb的用法在网上大家都可以找到相应的文章,但是对scala进行调试的就比较少了.其实调试的大致流程都 ...
- scala练习题1 基础知识
1, 在scala REPL中输入3. 然后按下tab键,有哪些方法可以被调用? 24个方法可以被调用, 8个基本类型: 基本的操作符, 等: 2,在scala REPL中,计算3的平方根,然 ...
- 牛顿法求平方根 scala
你任说1个整数x,我任猜它的平方根为y,如果不对或精度不够准确,那我令y = (y+x/y)/2.如此循环反复下去,y就会无限逼近x的平方根.scala代码牛顿智商太高了println( sqr(10 ...
- Scala集合和Java集合对应转换关系
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用Scala编码的时候,经常会遇到scala集合和Java集合互相转换的case,特意mark一 ...
- Scala化规则引擎
1. 引言 什么是规则引擎 一个业务规则包含一组条件和在此条件下执行的操作,它们表示业务规则应用程序的一段业务逻辑.业务规则通常应该由业务分析人员和策略管理者开发和修改,但有些复杂的业务规则也可以由技 ...
- Scala快速概览
IDEA工具安装及scala基本操作 目录 一. 1. 2. 3. 4. 二. 1. 2. 3. 三. 1. 2. 3. 4. 5. 6. 7. 四. 1. (1) (2) (3) (4) (5) ( ...
- Scala Macros - scalamela 1.x,inline-meta annotations
在上期讨论中我们介绍了Scala Macros,它可以说是工具库编程人员不可或缺的编程手段,可以实现编译器在编译源代码时对源代码进行的修改.扩展和替换,如此可以对用户屏蔽工具库复杂的内部细节,使他们可 ...
- Scala Macros - 元编程 Metaprogramming with Def Macros
Scala Macros对scala函数库编程人员来说是一项不可或缺的编程工具,可以通过它来解决一些用普通编程或者类层次编程(type level programming)都无法解决的问题,这是因为S ...
- Scala Reflection - Mirrors,ClassTag,TypeTag and WeakTypeTag
反射reflection是程序对自身的检查.验证甚至代码修改功能.反射可以通过它的Reify功能来实时自动构建生成静态的Scala实例如:类(class).方法(method).表达式(express ...
- Scala For Java的一些参考
变量 String yourPast = "Good Java Programmer"; val yourPast : String = "Good Java ...
随机推荐
- Java Arrays.sort相关用法与重载
Java Arrays.sort() Java中的数组排序函数, 头文件 import java.util.Arrays; 相关API Arrays.sort(arys[]) Arrays.sort( ...
- Contemplation! Algebra 矩阵快速幂
Given the value of a+b and ab you will have to find the value of a n + b n Input The input file cont ...
- FreeMarker与Spring MVC 4集合的HelloWorld示例
0.整体的项目结构 1.引入POM <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...
- Jupyter Notebook: 解决build docker-stacks时conda太慢的问题
当想使用docker安装Jupyter Notebook时,有一个很好的项目是docker-stacks(https://github.com/jupyter/docker-stacks/tree/m ...
- MySQL: 打开binlog选项后无法重启MySQL
binlog目录权限不足导致,用chown mysql:mysql <log folder>即可解决此问题.
- bzoj1072【SCOI2007】排列perm
1072: [SCOI2007]排列perm Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1479 Solved: 928 [id=1072&q ...
- 开源软件Review Board
开源软件, Review Board 代码审查的. https://www.reviewboard.org/
- git 手动操作
git 手动操作 以下所有的情况都需要在上面那个目录下: 查看改动: git status // 所有改动都在这里. 提交代码: git add <file_name> // 把代码放到 ...
- [Phonegap+Sencha Touch] 移动开发77 Cordova Hot Code Push插件实现自己主动更新App的Web内容
原文地址:http://blog.csdn.net/lovelyelfpop/article/details/50848524 插件地址:https://github.com/nordnet/cord ...
- 编程算法 - 求1+2+...+n(函数继承) 代码(C++)
求1+2+...+n(函数继承) 代码(C++) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 求1+2+...+n, 要求不能使用乘除法\for\whi ...