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+"\t")
// }
// if(i==j){
// println()
// }
// }
// }
// for(i <- 1 to 9;j <- 1 until 10){
// if(i>=j){
// print(i+"*"+j+"="+i*j+"\t")
// }
// 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)
}
}