package level02
object class03 {
class Person() {
}
object Person {
def apply(): Person = {
println("apply ......")
new Person()
}
}
def main(args: Array[String]): Unit = {
val p1 = Person()
val p2 = Person()
println(p1)
println(p2)
println(p1 == p2)
}
}

package level02
object class04 {
class Person() {
println("主构造器被调用......")
}
object Person {
val p = new Person()
def apply(): Person = {
p
}
}
def main(args: Array[String]): Unit = {
val p1 = Person()
val p2 = Person()
println(p1)
println(p2)
println(p1 == p2)
}
}

object class05 {
class Person() {
println("主构造器被调用......")
}
object Person {
val p = new Person()
def apply(): Person = {
p
}
}
def main(args: Array[String]): Unit = {
val p1 = Person()
val p2 = Person()
println(p1)
println(p2)
println(p1 == p2)
}
}

package level02
object class04 {
class Logger(filename: String) {
def log(content: String): Unit = {
println(s"$content ")
}
}
object Logger {
var instance: Option[Logger] = None
def apply(filename: String): Logger = {
if (instance.isEmpty) {
instance = Some(new Logger(filename))
}
instance.get
}
}
def main(args: Array[String]): Unit = {
val logger1 = Logger("test.log")
val logger2 = Logger("test.log")
logger1.log("2008-11-4 09:00:03 Scala课程")
logger2.log("2008-11-5 10:00:03 Scala课程")
}
}

package level02
object class04 {
import java.io.FileWriter
class Logger(filename: String) {
def log(content: String): Unit = {
val writer = new FileWriter(filename, true)
writer.write(content + "\n")
writer.close()
println(s"${content} ")
}
}
object Logger {
var instance: Option[Logger] = None
def apply(filename: String): Logger = {
if (instance.isEmpty) {
instance = Some(new Logger(filename))
}
instance.get
}
}
def main(args: Array[String]): Unit = {
val logger1 = Logger("test.log")
logger1.log("2005-11-4 09:00:03 上scala课")
logger1.log("2005-11-5 09:00:03 运动会")
logger1.log("2005-11-6 09:00:03 休息")
}
}
