1》类和对象
类的定义和简单使用
class Student(name:String,age:Int){ var this.name=name var this.age=age def outPut(): Unit ={ println("学生:"+this.name+"今年"+this.age+"岁") } } object HelloWorld { def main(args: Array[String]) { var s=new Student("王宇",18) s.outPut(); } }
继承和函数的重载
Scala重写一个非抽象方法,必须用override修饰符
class people(name:String,age:Int){ var this.name=name var this.age=age def outPut(): Unit ={ println("学生:"+this.name+"今年"+this.age+"岁") } } class Student(name:String, age:Int, boolean: Boolean)extends people(name,age){ var shuaima=boolean override def outPut(): Unit = { println("学生:" + this.name + "今年" + this.age + "岁,帅吗" + shuaima) } } object HelloWorld { def main(args: Array[String]) { var s=new Student("王宇",18,true) s.outPut(); } }
伴生对象
// 私有构造方法 class Marker private(val color:String) { println("创建" + this) override def toString(): String = "颜色标记:"+ color } // 伴生对象,与类名字相同,可以访问类的私有属性和方法 object Marker{ private val markers: Map[String, Marker] = Map( "red" -> new Marker("red"), "blue" -> new Marker("blue"), "green" -> new Marker("green") ) def apply(color:String) = { if(markers.contains(color)) markers(color) else null } def getMarker(color:String) = { if(markers.contains(color)) markers(color) else null } def main(args: Array[String]) { println(Marker("red")) // 单例函数调用,省略了.(点)符号 println(Marker getMarker "blue") } }输出创建颜色标记:red创建颜色标记:blue创建颜色标记:green颜色标记:red颜色标记:blue
2》Scala Trait(特征)
相当于 Java 的接口,实际上它比接口还功能强大。与接口不同的是,它还可以定义属性和方法的实现。
import java.awt trait Pen{ def colorReturn():String def sizeReturn=()=>10; } class Paint(color1:String,size1:Int)extends Pen{ var col=color1 var siz=size1 override def colorReturn(): String = col } object HelloWord{ def main(args: Array[String]): Unit = { val paint=new Paint("red",12) println(paint.sizeReturn()) } }
3》模式匹配
match相当于switch
def main(args: Array[String]): Unit = { print(score(1)) } def score(x:Any): String =x match{ case 1=>"数字1" case 2=>"数字2" case 3=>"数字3" case _=>"其他" }
使用样例类
object HelloWord { def main(args: Array[String]): Unit = { val red=Pen("Red","大") val blue=Pen("Blue","大") val yellow=Pen("Yellow","小") for(pen<-List(red,blue,yellow)){ pen match { case Pen("Red","大")=>println("使用大毛笔画Red颜色") case Pen("Blue","大")=>println("使用大毛笔画RBlue颜色") case Pen(col,size)=>println("使用"+size+"毛笔画"+col+"颜色") } } } //样例类 case class Pen(col: String, size: String) }输出使用大毛笔画Red颜色使用大毛笔画RBlue颜色使用小毛笔画Yellow颜色
3》文件操作
def main(args: Array[String]): Unit = { val writer=new PrintWriter(new File("test.txt")) writer.write("王宇真帅") writer.close() }
每次调用这个方法写入时会删除以前的数据重新写入
获取控制台用户输入
def main(args: Array[String]) { print("请输入账号 : " ) val line = StdIn.readLine() println("你的账号是: " + line) }输出请输入账号 : 837634852你的账号是: 837634852
遍历输出文件
Source.fromFile("test.txt").foreach { print }
追加写入文件
原文地址:https://www.cnblogs.com/837634902why/p/10467946.html
时间: 2024-10-20 01:00:02