package com.bjsxt.scala /** * 1.object 是scala中的对象,相当于java中的单例对象。object中定义的全都是静态的。main函数写在object中 * 2.scala中一行代码后面可以省略“;”,会有分号自动推断机制,如果多行写在一行中,分号不能省略 * 3.scala中定义变量使用var ,定义常量使用val ,变量可以改变,常量不可以改变。定义的变量和常量后面的类型可以省略。 * 4.建议在scala中命名要符合驼峰命名法。 * 5.scala中类可以传参,传参就有了默认的构造。参数要指定类型。类中的属性默认有getter,setter方法。 * 6.scala重写构造方法 第一行首先要调用默认构造 * 7.当new 一个类时,类中除了方法(不包含构造)不执行,其他都执行。 * 8.object和class如果名称一样,这个object叫做这个class的伴生对象,这个class叫做这个object的伴生类,他们之间可以互相访问私有变量. */ class Person(xname:String,xage:Int){ private var name = xname val age = xage var gender = 'm' def this(yname:String,yage:Int,ygender:Char){ this(yname,yage) this.gender = ygender } // def showScore() = { // println("score is "+Lesson_ClassAndObj.score) // } // println("***************************") } object Person { println("===================") val score = 200 def main(args: Array[String]): Unit = { // /** // * while()... // * do...while() // */ // var i =0 // while(i<100){ // println(i) //// i = i+1 // i += 1 // } /** * for */ // println(1 to (10,2))//包含10 // println(1 to 10)//包含10 // println(1 until (10,3))//不包含10 // for(i <- 1 to 9){ // for(j <- 1 until 10){ // if(i>=j){ // print(i+"*"+j+"="+i*j+" ") // } // if(i==j){ // println() // } // } // } // for(i <- 1 to 9;j <- 1 until 10){ // if(i>=j){ // print(i+"*"+j+"="+i*j+" ") // } // if(i==j){ // println() // } // } // for(i <- 1 to 100 if(i%2==0) if(i==98)){ // println(i) // } // var v = for(i <-1 to 100 ;if(i>50)) yield i // println(v) /**if...else***/ // var age = 19 // if(age<18){ // println("不可观看") // }else if(age>=18&&age<=40){ // println("可以观看") // }else { // println("有人陪同") // } // val person = new Person("diaochan",18) // println(person.name) // val person = new Person("diaochan",18) // person.showScore() // println(person.name) // println(person.age) // println(person.gender) // val person = new Person("lisi",20) // person.name = "wangwu" // println(person.name) // // val a = 100 // var b = 200 // b = 300 // println(b) } }