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. Netty学习之IO模型

    目录 1.1 同步.异步.阻塞.非阻塞     同步 VS 异步         同步         异步     阻塞 VS 非阻塞         阻塞         非阻塞     举例   ...

  2. 【函数分享】每日PHP函数分享(2021-1-8)

    explode() 使用一个字符串分割另一个字符串. array explode( string $delimiter , string $string [, int $limit ]) 参数描述de ...

  3. 【Java基础】枚举类与注解

    枚举类与注解 枚举类的使用 当需要定义一组常量时,强烈建议使用枚举类. 枚举类的理解:类的对象只有有限个,确定的. 若枚举只有一个对象, 则可以作为一种单例模式的实现方式. 枚举类的属性: 枚举类对象 ...

  4. HBase的架构设计为什么这么厉害!

    老刘是一名即将找工作的研二学生,写博客一方面是复习总结大数据开发的知识点,一方面是希望能够帮助和自己一样自学编程的伙伴.由于老刘是自学大数据开发,博客中肯定会存在一些不足,还希望大家能够批评指正,让我 ...

  5. Openstack 启动一个实例(九)

    Openstack 启动一个实例(九) 创建一个提供者网络: # 创建一个提供者网络: openstack network create --share --external --provider-p ...

  6. 【JS学习】var let const声明变量的异同点

    [JS学习]var let const声明变量的异同点 前言: 本博客系列为学习后盾人js教程过程中的记录与产出,如果对你有帮助,欢迎关注,点赞,分享.不足之处也欢迎指正,作者会积极思考与改正. 总述 ...

  7. JS实现植物大战僵尸小游戏,代码记录及效果展示

    前几天看到了一个很有趣的demo,用js制作植物大战僵尸小游戏,本着学习的心态,对照着做了一下,发现这里面的一些代码设计的确很精妙,这里分享下源码和效果,如果有需要,可以看下. 效果如下: 下载地址

  8. 说说C# 8.0 新增功能Index和Range的^0是什么?

    前言 在<C# 8.0 中使用 Index 和 Range>这篇中有人提出^0是什么意思?处于好奇就去试了,结果抛出异常.查看官方文档说^0索引与 sequence[sequence.Le ...

  9. ES 2021 来了,详细解读5个新特性,附案例

    ES 2021是世界上最受欢迎的编程语言的最新版本〜 本次迭代中包含了五个新特性,让我们来一睹为快. 1.全部替换replaceAll: js默认的replace 方法仅替换字符串中一个模式的第一个实 ...

  10. hive报错:Failed with exception java.io.IOException: rename for src path:

    在hive中,会有这样一种情形: 1.创建一个分区外部表A(比如A表有5个字段),并且向A表里指定的分区(比如20160928这个分区)里插入数据 2.发现A表缺少一些字段,因为存在元数据不实时更新的 ...