大数据全系列 教程
1869个小节阅读:467.5k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
xxxxxxxxxx
package com.itbaizhan.chapter04
import scala.beans.BeanProperty
class Animal{
//属性声明,java中可以不赋值,scala中属性必须显示地初始化
//var name:String //抛错
//可以直接赋予一个默认值
//var name:String = "华南虎"
//如果希望像java一样可以由系统进行初始化,后续手动调用setter赋值,声明时使用_赋值
var name:String = _
//使用val声明的属性,编译器将之编译为私有的属性,并使用final修饰,不可修改,
//所以只提供的get方法,而没有提供set方法
val age:Int = 30
//属性声明时如果使用private修饰,编译器将该属性对应的get和set方法也是编译为私有化的方法
private var color:String = _
//通过查看Animal类的源码,属性的get和set方法不符合bean规范
//如果想符合bean规范(id=>getId,setId),需要在属性声明前加上@BeanProperty
@BeanProperty var kind:String = _
}
object ClassField {
def main(args: Array[String]): Unit = {
val animal = new Animal()
//var声明的属性编译器将之编译为类的私有属性,通过提供getter和seter方法
//如下方式赋值相当于调用的animal.setName("东北虎")
animal.name = "东北虎"
//访问类的属性时相当于调用了对象的get方法
println(animal.name)
//val声明的属性被final修饰,并未提供set方法,所以不可改变
//animal.age = 10
}
}