访问权限: 类的成员(属性, 方法)在哪些地方可以被访问。
1. private : 私有的。
(1) 在类的内部可以访问。
(2) 在类的外部不能访问。
(3) 在伴生对象中可以访问。
根据这些定义,我们可以输入以下代码:
package level02
import level02.class20.Student.test
/*
访问权限: 类的成员(属性, 方法)在哪些地方可以被访问。
1. private : 私有的。
(1) 在类的内部可以访问。
(2) 在类的外部不能访问。
(3) 在伴生对象中可以访问。
*/
object class20 {
class Student(var name: String, private var age: Int) {
def say(): Unit = {
println(s"${this.age}") // (1) 在类的内部可以访问。
}
}
object Student {
def test(student: Student): Unit = {
println(student.age) // (3) 在伴生对象中可以访问。
}
}
def main(args: Array[String]): Unit = {
val s1 = new Student("小花", 18)
s1.say()
// println(s1.age) // 报错。(2) 在类的外部不能访问。
Student.test(s1)
}
}
运行结果如图所示:
还可以抄写一下代码:
object class21 {
class Bank(private[this] var balance:Double) {
// 存
def deposit(amount:Double):Unit = {
balance += amount
}
// 取
def withdraw(amount:Double):Unit = {
if(balance >= amount) {
balance -= amount
}
}
def getBalance():Double = balance
}
object Bank {
def clear(bank: Bank): Unit = {
// 在第11行, 添加了private[this]之后, 就不能再直接访问balance属性
// bank.balance = 0
}
}
def main(args: Array[String]): Unit = {
val bank = new Bank(100)
bank.deposit(10000)
bank.withdraw(200)
// bank.balance -= 100
// bank.balance -= 100
Bank.clear(bank)
println(bank.getBalance())
}
}
运行结果如图
访问权限: 类的成员(属性, 方法)在哪些地方可以被访问。
- private : 私有的。 (1) 在类的内部可以访问。 (2) 在类的外部不能访问。 (3) 在伴生对象中可以访问。