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. 你真会看idea中的Log吗?

    在项目中提交代码时,我们时常忘了自己是否已经update代码或者push代码了,或者以为自己push,但是别人说你的代码没push,其实可以通过idea的Log日志中查看,你会发现里面有三种颜色的标签 ...

  2. C语言实现九大排序算法

    C语言实现九大排序算法 直接插入排序 折半插入排序 希尔排序 冒泡排序 快速排序 直接选择排序 堆排序 归并排序 基数排序 C语言实现九大排序算法 直接插入排序 将数组分为两个部分,一个是有序部分,一 ...

  3. 【JDBC核心】JDBC 概述

    JDBC 概述 数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固 ...

  4. 【MyBatis】自定义 MyBatis

    自定义 MyBatis 文章源码 执行查询信息的分析 我们知道,MyBatis 在使用代理 DAO 的方式实现增删改查时只做两件事: 创建代理对象 在代理对象中调用 selectList() 配置信息 ...

  5. Nginx Consul nginx-upsync-module

    nginx consul nginx-upsync-module 依赖包: yum -y install libpcre3 libpcre3-dev ruby zlib1g-dev patch 下载n ...

  6. Gulp4.0入门和实战

    gulp4.0入门和实战 我最近遇到需要优化web的性能的任务,然后就捣鼓了一些对资源文件优化压缩的方案.由于之前的项目中有使用到gulp,所以在需要处理的web项目中也优先使用这个技术. 先聊聊gu ...

  7. MySQL下载与安装教程

    一,下载篇 1,首先访问MySQL官网下载页,https://dev.mysql.com/downloads/mysql/ 如果是MAC系统,操作系统请选择macOS,Windows则选择Window ...

  8. 探索微软开源Python自动化神器Playwright

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也 ...

  9. 欢迎来到 ZooKeeper 动物世界

    本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费有趣.入门级的 ZooKeeper 开源教程,面向有编程基础的新手. Zo ...

  10. jQ实现图片无缝轮播

    在铺页面的过程中,总是会遇到轮播图需要处理,一般我是会用swiper来制作,但总会有哪个几个个例需要我自己来写功能,这里制作了一个jq用来实现图片无缝轮播的dome,分享给大家ヽ( ̄▽ ̄)ノ. dom ...