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
}else{
this.age=18
}
} def show():Unit={
println("我是show方法")
}
def show2: Unit ={//方法无副作用可以不加括号
println("我是show2方法") } //定制getter和setter-----按照java的方式写
/*def getName():String=name
def setName(name:String){this.name=name}*/ }
package com.zzy

import org.junit.Test

class Person (ad:String){//主构造器!!!

  var address=ad
var name="小白"
var age=18 //主构造器
//无参构造器
/*def Person(ad:String):Unit={
println("主构造器被调用了") }*/
//scala中只能有一个主构造器 //辅助构造器
def this(n:String,a:Int){
this("河南")//调用主构造器
this.name=n
this.age=a
println("辅助构造器被调用了")
} }

开发中正常一个类的结构

package com.zzy

import scala.beans.BeanProperty

class Address {
//给出getter setter @BeanProperty
var city="郑州"
@BeanProperty
var street="十五大街"
@BeanProperty
var mail="450000"
//主构造器就是无参的构造方法 //辅助构造器
def this(c:String,s:String,m:String) {
this()
this.city = c
this.street = s
} //toString 重写了tostring
override def toString = s"Address($city, $street, $mail)"

}
package com.zzy
import org.junit.Test object MyTest {
def main(args: Array[String]): Unit = { val aa = new Aclass
aa.show()
aa.name="赵云"//调用了setter
println(aa.name)//调用了getter aa.show2 //属性上加上@BeanProperty 对象就直接可以调用属性的get和set方法
println(aa.getName)
aa.setName("关羽")
println(aa.getName) aa.setAge(-100)
println(aa.getAge())//18 //创建对象
/*val person = new Person("郑州")//调用了有参数的主构造器
println(person.address+"\t"+person.name+"\t"+person.age)*/ /* val person2= new Person("曹操",50)
println(person2.address+"\t"+person2.name+"\t"+person2.age)*/
//有两个构造器(主,辅)就有两种方式创建对象 /* val address = new Address
println(address)*/ /* val address2 = new Address("洛阳","凤凰街道","460000")
println(address2)*/ } //无法在object中使用junit
@Test
def myfunction():Unit={
println("测试")
} }

Scala中junit的使用

package com.zzy
import org.junit.Test
class myJunitTest {//scala可以在class中使用junit object中不可以 @Test
def show:Unit={
println("测试junit")
} }

最新文章

  1. svn 修改文件的二进制或文本标记
  2. Hbuilder与svn快速连接并在手机上测试页面
  3. 关于js中空值比较和传值的问题
  4. C++杂谈(三)产生随机数与time函数
  5. Maven2-profile多环境配置
  6. iOS开发——高级篇——Objective-C特性:Runtime
  7. C语言样式的文件操作函数
  8. Xcode配置libdc1394
  9. hdu 2050 折线分割平面
  10. UVaLive 7363 A Rational Sequence (二叉树)
  11. POJ3016-K-Monotonic(左偏树+DP)
  12. 二叉搜索的各种bugs——重复递增序列
  13. C# TextBox实现全选
  14. pip安装icu失败:Command "python setup.py egg_info" failed with error code 1 in
  15. ln命令详解
  16. SDWebimage如何获取缓存大小以及清除缓存
  17. [LeetCode] Candy Crush 糖果消消乐
  18. android动画介绍--Animation 实现loading动画效果
  19. 动态从数据库获取数据,省市县三级联动,有校验,导出Excel模板
  20. nginx环境搭建

热门文章

  1. wpf 中 Ellipse 对象对动画性能的影响
  2. CSAPP:Lab0 -Docker搭建纯净Linux环境
  3. cursor pin s和cursor pin s wait on x
  4. Nacos集成学习入门
  5. windows下的:开始→运行→命令
  6. let关键字:加强版的var关键字
  7. Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之采样 Transactions
  8. [Usaco2007 Dec]宝石手镯
  9. kubernetes 核心技术-Controller 控制器
  10. Android N wifi auto connect流程分析