import scala.collection.mutable.ArrayBuffer
class Class { class Student(val name: String) val students = new ArrayBuffer[Student] def register(name: String) = { new Student(name) } } val c1 = new Class val leo = c1.register("leo") c1.students += leo val c2 = new Class val jack = c2.register("jack")c1.students += jack
object Class { class Student(val name: String) } class Class { val students = new ArrayBuffer[Class.Student] def register(name: String) = { new Class.Student(name) } } val c1 = new Class val leo = c1.register("leo") c1.students += leo val c2 = new Class val jack = c2.register("jack") c1.students += jack
class Class { class Student(val name: String) val students = new ArrayBuffer[Class#Student] def register(name: String) = { new Student(name) } } val c1 = new Class val leo = c1.register("leo") c1.students += leo val c2 = new Class val jack = c2.register("jack") c1.students += jack
class Class(val name: String) { outer => class Student(val name: String) { def introduceMyself = "Hello, I'm " + name + ", I'm very happy to join class " + outer.name } def register(name: String) = { new Student(name) } } val c1 = new Class("c1") val leo = c1.register("leo") leo.introduceMyself