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")
} }

Scala面向对象—类详解的更多相关文章

  1. Scala面向对象—类详解2(继承相关)

    1.单例类 package com.zzzy class AAA {//单例 /*//java 思路--私有化构造方法,提供公开的getAAA 行不通 private def this(){ this ...

  2. URLConnection类详解-转

    转-http://www.cnblogs.com/shijiaqi1066/p/3753224.html 1. URLConnection概述 URLConnection是一个抽象类,表示指向URL指 ...

  3. Scala进阶之路-Scala函数篇详解

    Scala进阶之路-Scala函数篇详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传值调用和传名调用 /* @author :yinzhengjie Blog:http: ...

  4. Java基础-进程与线程之Thread类详解

    Java基础-进程与线程之Thread类详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.进程与线程的区别 简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程 ...

  5. windows scala helloworld例子详解

    [学习笔记] windows scala helloworld例子详解: 在操作系统中,我们的Test3.scala会生成Test3.class,然后class文件被虚拟机加载并执行, 这一点和jav ...

  6. java之StringBuffer类详解

    StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...

  7. java之AbstractStringBuilder类详解

    目录 AbstractStringBuilder类 字段 构造器 方法   public abstract String toString() 扩充容量 void  expandCapacity(in ...

  8. java之StringBuilder类详解

    StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...

  9. Java String类详解

    Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...

随机推荐

  1. .NET Core 处理 WebAPI JSON 返回烦人的null为空

    前言 项目开发中不管是前台还是后台都会遇到烦人的null,数据库表中字段允许空值,则代码实体类中对应的字段类型为可空类型Nullable<>,如int?,DateTime?,null值字段 ...

  2. 【Flutter】功能型组件之异步UI更新

    前言 很多时候会依赖一些异步数据来动态更新UI,比如在打开一个页面时我们需要先从互联网上获取数据,在获取数据的过程中我们显示一个加载框,等获取到数据时我们再渲染页面:又比如想展示Stream(比如文件 ...

  3. Python基础语法3-输入、输出语句

  4. 在Jetbrain IDE中自定义TODO功能

    好的IDE能为开发以及学习源码带来效率的提升,今天要介绍的就是Jetbrain家族中IDE自带的TODO功能,我认为利用好它,能够大大的提升阅读源码的效率. 假设我现在需要去阅读源代码,看了半天我终于 ...

  5. C# url的编码解码,xml和json的序列化和反序列化

    参考中国慕课网dot net web编程应用程序实践 using System; using System.Collections.Generic; using System.IO; using Sy ...

  6. CMU数据库(15-445)Lab0-环境搭建

    0.写在前面 从这篇文章开始.开一个新坑,记录以下自己做cmu数据库实验的过程,同时会分析一下除了要求我们实现的代码之外的实验自带的一些代码.争取能够对实现一个数据库比较了解.也希望能写进简历.让自己 ...

  7. Android 中使用 config.gradle

    各位同学大家好,当然了如果不是同学,那么大家也同好.哈哈. 大家知道config.gradle 是什么吗?我也不知道.开个完笑,其实config.gradle 就是我们为了统一gradle 中的各种配 ...

  8. CSS3+JS完美实现放大镜模式

    最近看到一篇讲放大镜的文章,实践后感觉效果非常好,这里分享给大家. 效果如下: 其实现核心: CSS函数,如:calc() -- 动态计算:var() -- 使用自定义变量 CSS伪元素:::befo ...

  9. Django-html文件实例

    1.实例1,登陆界面 <!DOCTYPE html> <head> <meta http-equiv="content-type" content=& ...

  10. rbd-db数据迁移至外部数据库

    部署外部数据库 安装Docker export VERSION=19.03 && curl -fsSL http://rainbond-pkg.oss-cn-shanghai.aliy ...