创建类和对象
object Base31 {
class Person(){}
class Student(){}
def main(args: Array[String]): Unit = {
val p1 = new Person()
val s1 = new Student()
println(p1)
println(s1)
}
}
主构造函数
object Base33 {
class Student(var name:String = "小花", var age:Int = 18) {
println("Student......被调用了....")
def say(): Unit = {
println(s"${name},${age}")
}
}
def main(args: Array[String]): Unit = {
val s1 = new Student()
s1.say()
val s2 = new Student("小明",19)
s2.say()
}
}
判断是否为三角形
object Base34 {
class Triangle(var a: Double = 1.0, var b: Double = 1.0, var c: Double = 1.0) {
println(s"$a; $b; $c;")
def check(): Boolean = {
return a + b > c && b + c > a && a + c > b
}
}
def main(args: Array[String]): Unit = {
print("请输入第一条边")
val a = scala.io.StdIn.readDouble()
print("请输入第二条边")
val b = scala.io.StdIn.readDouble()
print("请输入第三条边")
val c = scala.io.StdIn.readDouble()
val t1 = new Triangle(a, b, c)
if (t1.check()) {
println("能构成三角形")
} else {
println("不能构成三角形")
}
}
}
求三角形的面积
object Base35 {
class Triangle(var a: Double = 1.0, var b: Double = 1.0, var c: Double = 1.0) {
def check(): Boolean = {
return a + b > c && b + c > a && a + c > b
}
def getArea(): Double = {
if (check()) {
var s = (a + b + c) / 2
s = Math.sqrt(s * (s - a) * (s - b) * (s - c))
return s
} else {
println(s"$a; $b; $c: 不能构成一个三角形")
return -1
}
}
}
def main(args: Array[String]): Unit = {
val t1 = new Triangle(3, 4, 5)
println(t1.getArea())
val t2 = new Triangle(3, 4, 3)
println(t2.getArea())
}
}
构造器的默认值
object Base36 {
class Student(var name: String, var age: Int, var gender: String = "男", var nav: String = "汉族") {
def say(): Unit = {
println(s"${name}, ${age}, ${gender}, ${nav}")
}
}
def main(args: Array[String]): Unit = {
var s1 = new Student("小明", 19)
s1.say()
var s2 = new Student("小花", 18, "女", "回族")
s2.say()
}
}
构造器中的参数的类型
- val 定义的属性,不能修改
- var 定义的属性,可以修改
- 没有 val,也没有 var 的,不是对象的属性。不能使用 . 语法来访问。
object Base37 {
class Student(val name: String, var age: Int, gender: String = "男") {
def say(): Unit = {
println(s"$name, $age, $gender")
}
}
def main(args: Array[String]): Unit = {
var s1 = new Student("小明", 19)
s1.age = 20
s1.say()
}
}
多种注册用户的方式 --- 辅助构造器
object Base38 {
class Register(val name: String, var email: String, var pwd: String, var phone: String) {
println("主构造器被调用")
def this(phone: String, pwd: String) {
this("随机用户xxxxx", "xxxx@qq.com", pwd, phone)
println("辅助构造器被调用")
}
def this(email: String, pwd: String, name: String) {
this(name, email, pwd, "1300000000")
println("辅助构造器被调用")
}
def say(): Unit = {
println(s"姓名: ${name}, 邮箱: ${email}, 密码: ${pwd}, 手机: ${phone}")
}
}
def main(args: Array[String]): Unit = {
val r1 = new Register("13617885566", "123456")
val r2 = new Register("9456651@qq.com", "123456", "小明")
r1.say()
r2.say()
}
}