java多态理解:
定义:多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
自己理解:其实我们可以理解为我们通过不同的类实现或继承一个类,然后重写这个类的方法,这样这个类就根据不同的实现类实现不同的状态。
scala是一个面向对象的函数式编程
1.scala中的类、抽象类、方法、函数的等级是一样的,也就是说他的方法可以独立运行不需要new对象用对象调方法
scala中所有类的父类是Any
基本数据类型:Byte、Short、Int、Long、Float、Double、Char、Boolean、Unit(无值) 初始值Nothing
引用数据类型:Iterable、Seq、List、String等 初始值为Null
定义变量:
val :赋值后不可以改变 e.g: val 值名称 :类型=值
var :赋值后值可以改变 e.g: var 变量名称 :类型=值
2.创建项目:
(1)在创建scala测试类的时候,必须创建一个Object,注意scala中的Object和java中的Object是不一样的
(2)scala中的类如果一个报错会影响报下的其他类无法运行,甚至项目都无法运行
(3)在scala中只要见到def这个关键字,就说明要创建一个方法
def main(args: Array[String]): Unit = {
main是方法名称
args: Array[String] 是形参
Unit是该方法的没有返回值相当于java中的void
}
var c = 2
println(c+2) 的输出值是4
println(""+c+2) 的输出值是22 相当于字符串拼接
(4)自定义的方法:scala中如果方法中有返回值的话,把最后一行就作为返回值
def insert ():String ={
var i :String = "lalala"
i
}
(5)lazy关键字,只有在调用的时候才会执行
var c :Int = 2
lazy val i:String = {c+"---"}
println("执行")
println(i)
在main方法里执行结果为:
执行
2---
(6)插值器s和f
var c = 2
println(s"c的值为${c}") ${}里可以进行计算,但是必须有花括号{}
执行结果:c的值为2
(7)for循环
for(i <- 0 until(to) 10){ //until是0到9,左闭右开 to 是0到10 都是闭区间
if(i==2)
println(i)
}
(8)break的使用 首先用breaks.出来breakable方法
breakable{
for(i <- 0 to 10){
if(i==4) break()
else println(i)
}
}
(9)list和map集合
var a = new ArrayList[Any]
a.add(1)
a.add(12)
a.add(123)
println(a.get(0))
for(i <- 0 until a.size()){
println(a.get(i))
}
var o = Map("admin" -> 22)
o.get("admin")
o.put("lalala", 456)
println(o("admin")+" "+o("lalala"))