标签:对象 继承 抽象 控制台 from ide fromfile bool red
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
}
追加写入文件
标签:对象 继承 抽象 控制台 from ide fromfile bool red
原文地址:https://www.cnblogs.com/837634902why/p/10467946.html