//Person是一个类名 理解为变量名
//首字符是大写
//类名一般是名词
1 定义变量
//在类中 定义成员变量
//val var修饰的变量有啥区别?
//val不可修改
//var 可修改
2 实例化对象
//访问成员变量
println(s1.name)
//修改成员变量
s1.name = "小花花"
println(s1.name)
object Base30 {
class Person() {}
class Student() {
//在类中 定义成员变量
//val var修饰的变量有啥区别?
//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)
}
}
功能都封装在class中
object Base31 {
//功能都封装在class中
//1 属性
//2 方法
//3 辅助构造器
class Student() {
//1 类的属性- 变量
var name:String = "小花"
var age :Int = 18
//2 类的方法-函数
def say(): Unit = {
println(s"${name},${age}")
}
}
def main(args: Array[String]): Unit = {
//实例化对象
val s1 = new Student()
s1.say()
}
}
带参数的构造器(构造函数) 功能都封装在class中 1 属性 2 方法 3 辅助构造器
object Base32 {
//带参数的构造器(构造函数)
//那功能都封装在class中
//1 属性
//2 方法
//3 辅助构造器
class Student(var name:String = "小花",var age :Int = 18) {
println("Student......被调用了....")
//1 类的属性- 变量
//var name:String = "小花"
//var age :Int = 18
//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 判断是否为一个三角形
def main(args: Array[String]): Unit = {
class Triangle(var a:Double = 1.0,var b:Double = 1.0,var c:Double = 1.0) {
println(s"${a}${c}${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 Base34 {
//封装一个三角形类
//给中学生用,根据三条边
//1 求三角形面积
//2 判断是否为一个三角形
class Triangle(var a:Double = 1.0,var b:Double = 1.0,var c:Double = 1.0) {
// println(s"${a}${c}${c}")
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}${b} 不能构成一个三角形")
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 Base35 {
//构造器的默认值
//必填项:姓名,年龄
//有默认值的项
//性别:男
//民族:汉族
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 s0 = new Student()//gender 和 nav 使用默认值
var s1 = new Student("小明", 19)//gender 和 nav 使用默认值
s1.say()
var s2 = new Student("小花", 18, "女", "回族")
s2.say()
}
}
object Base36 {
//构造器中的参数的类型
//1 val定义的属性,不能修改
//2 var定义的属性,可以修改
//3 没有val 也没有var的 不是对象的属性。不能使用语法来访问
class Student(var name: String, var age: Int, var gender: String = "男" ) {
def say(): Unit = {
println(s"${name}${age}${gender}")
}
}
def main(args: Array[String]): Unit = {
//var s0 = new Student()//gender 和 nav 使用默认值
var s1 = new Student("小明", 19)//gender 和 nav 使用默认值
s1.age=20
s1.say()
}
}
object Base38 {
// 多种注册用户的方式 --- 辅助构造器
// 1. 手机号 + 密码
// 2. 邮箱 + 密码 + 用户名
// 姓名
class Register(val name: String, var email: String, var pwd: String, var phone: String) {
println("主构造器被调用")
// 辅助构造器
// 1. 名称一定是this
// 2. 在辅助构造器内部,一定要调用主构造器this
// 3. 可以有多个
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, "13600000000") // 调用主构造器
println("辅助构造器被调用")
}
def say(): Unit = {
println(s"姓名: ${name}, 邮箱: ${email}, 密码: ${pwd}, 手机号: ${phone}")
}
}
def main(args: Array[String]): Unit = {
// val r1 = new Register("小明", "123123@qq.com", "123456", "13617885566")
// 调用辅助构造器
val r1 = new Register("13617885566", "123456")
val r2 = new Register("9456651@qq.com", "123456", "小明")
r1.say()
r2.say()
}
}