Scala系列11:Scala类与对象,成员方法与变量,修饰符等详解 |
您所在的位置:网站首页 › 定义一个东西 › Scala系列11:Scala类与对象,成员方法与变量,修饰符等详解 |
0.类和对象
scala是支持面向对象的,也有类和对象的概念。我们依然可以基于scala语言来开发面向对象的应用程序。 0.1创建类和对象 用法 使用class来定义一个类使用new来创建对象 示例创建一个Person类,并创建它的对象 步骤 创建一个scala项目,并创建一个Object添加main方法创建类和对象实现 在IDEA中创建项目,并创建一个Object(main方法必须放在Object中)添加main方法创建一个Person类 object _01ClassDemo { // 创建类 class Person{} def main(args: Array[String]): Unit = { // 创建对象 val p = new Person() val p3:Person= new Person() //注意这种写法,和上面的写法一样,主要前后类型一致,可以省略。如果不一致(继承),则不可以省略 println(p) } } 尖叫提示:注意scala程序入口要在object单例中main方法里,这里先把类定义在object里。然后通过main方法进行演示。具体原因后面会继续分析。 1.定义和访问成员变量一个类会有自己的属性,例如:人这样一个类,有自己的姓名和年龄。我们接下来学习在类中定义、和访问成员变量。 用法 在类中使用var/val来定义成员变量对象直接使用成员变量名称来访问成员变量 示例 定义一个Person类,包含一个姓名和年龄字段创建一个名为"张三"、年龄为20岁的对象打印对象的名字和年龄 步骤 创建一个Object,添加main方法创建Person类,添加姓名字段和年龄字段,并对字段进行初始化,让scala自动进行类型推断在main方法中创建Person类对象,设置成员变量为"张三"、20打印对象的名字和年龄 object _03ClassDemo { class Person { // 定义成员变量 var name = "" var age = 0 } def main(args: Array[String]): Unit = { // 创建Person对象 val person = new Person person.name = "zhangsan" person.age = 20 // 获取变量值 println(person.name) println(person.age) } } 1.1使用下划线初始化成员变量scala中有一个更简洁的初始化成员变量的方式,可以让代码看起来更加简洁。 用法 在定义var类型的成员变量时,可以使用_来初始化成员变量 String => nullInt => 0Boolean => falseDouble => 0.0...特别注意:val类型的成员变量,必须要自己手动初始化 示例 定义一个Person类,包含一个姓名和年龄字段创建一个名为"张三"、年龄为20岁的对象打印对象的名字和年龄步骤 创建一个Object,添加main方法创建Person类,添加姓名字段和年龄字段,指定数据类型,使用下划线初始化在main方法中创建Person类对象,设置成员变量为"张三"、20打印对象的名字和年龄参考代码 object _04ClassDemo { class Person{ // 使用下划线进行初始化 var name:String = _ var age:Int = _ } def main(args: Array[String]): Unit = { val person = new Person println(person.name) println(person.age) } } 2.定义成员方法类可以有自己的行为,scala中也可以通过定义成员方法来定义类的行为。 定义在scala的类中,也是使用def来定义成员方法 示例创建一个Customer类 创建一个该类的对象,并调用printHello方法 步骤 创建一个Object,添加main方法创建Customer类,添加成员变量、成员方法在main方法中创建Customer类对象,设置成员变量值(张三、男)调用成员方法 object _05ClassDemo { class Customer { var name:String = _ var sex:String = _ // 定义成员方法 def sayHi(msg:String) = { println(msg) } } def main(args: Array[String]): Unit = { val customer = new Customer customer.name = "张三" customer.sex = "男" customer.sayHi("你好") } } 3.访问修饰符和Java一样,scala也可以通过访问修饰符,来控制成员变量和成员方法是否可以被访问。 定义Java中的访问控制,同样适用于scala,可以在成员前面添加private/protected关键字来控制成员的可见性。但在scala中,没有public关键字,任何没有被标为private或protected的成员都是公共的 案例定义一个Person类
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |