实例化对象
object base30 {
// Person就是一个类名,理解为变量名
// 首字符是大写
// 类名一般是名词
// 1.定义类
class Person(){}
class Student() {
// 在类中,定义成员变量
// val 不可修改
// var可修改
var name:String="小花"
var age:Int=18
}
def main(args: Array[String]): Unit = {
// 2.实例化对象
val p1=new Person()
val s1=new Student()
// 访问成员变量
println(s1.name)
// 修改成员变量
s1.name="小花花"
println(s1.name)
}
}
带参数的构造器(构造函数)
object base32 {
// 把功能都封装在class中
// 1.属性
// 2.方法
// 3.辅助构造器
class Student(var name:String="小花",var age:Int=18) {
println("Student......被调用了.....")
// 1.类的属性·变量
// 2.类的方法·函数
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 base33 {
// 封装一个三角形类
// 给中学生使用,根据三条边
// 1.求三角形面积
// 2.判断是否是一个三角形
class Triangle(var a:Double=1.0,var b:Double=1.0,var c:Double=1.0) {
// println(s"${a} ${c} ${b}")
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} ${c} ${c} 不能构成一个三角形")
return -1
}
}
}
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)
val t1=new Triangle(3,4,7)
println(t1.getArea())
val t2=new Triangle(3,4,3)
println(t2.getArea())
// if (t1.check()){
// println("能构成三角形")
// } else {
// println("不能构成")
// }
}
}
object base34 {
// 构造器的默认值
// 必填项:姓名,年龄
// 有默认值的项
// 性别:男
// 民族:汉
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("小h花",18,"女","回旋")
s2.say()
}
}
构造器中的参数的类型
没有val,也没有var的,不是对象的属性。不能使用,语法来访问
object base35 {
class Student(var 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.say()
}
}
object base36 {
class Register(var name:String, var email:String, var pwd:String, var phone:String) {
println("主构造器被调用")
def this(phone:String,pwd:String) = {
this("随机用户xxxx","xxxx@11,com",pwd,phone)
println("辅助构造器被调用")
}
def this(email:String,pwd:String,name:String) = {
this(name,email,pwd,"13600000000")
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("13617885586","123456","小明")
r1.say()
r2.say()
}
}