一个注意事项
println(Array[Int](10).mkString(",")) //10
println(new Array[Int](10).mkString(",")) // 0,0,0,0,0,0,0,0,0,0
一个补充:java类五大成员 属性,方法,内部类,构造器,代码块
1.嵌套类(内部类)
![](https://img.haomeiwen.com/i9049859/355452186b1ffed4.png)
对比java和scala学习
public class Test8 {
public static void main(String[] args) {
//访问成员内部类
OutclassDemo.Inner inner = new OutclassDemo().new Inner();
//访问静态内部类
OutclassDemo.InnerclassDemo innerclassDemo = new OutclassDemo.InnerclassDemo();
}
}
class OutclassDemo{
static class InnerclassDemo{
}
class Inner{
}
}
public class Test8 {
public static void main(String[] args) {
//访问成员内部类
OutclassDemo.Inner inner = new OutclassDemo().new Inner();
//访问静态内部类
OutclassDemo.InnerclassDemo innerclassDemo = new OutclassDemo.InnerclassDemo();
}
}
class OutclassDemo{
static class InnerclassDemo{
}
class Inner{
}
}
内部类访问外部类属性方法(采用取别名的方法访问)
![](https://img.haomeiwen.com/i9049859/4328d175a5408076.png)
import com.tongyongtao.MyScalaTest
import com.tongyongtao.MyScalaTest.Day22
object Test1 {
def main(args: Array[String]): Unit = {
val clazz = new OutClass
val clazz1 = new OutClass
val clazz2 = new OutClass
//创建非静态嵌套类
val clazz22 = new clazz.InnnerClass
val clazz21 = new clazz1.InnnerClass
//创建静态嵌套类
val c = new OutClass.InnterSC
//不能这样写
// clazz2.InnterSC()
clazz22.show()
}
}
class OutClass {
Inner =>
class InnnerClass {
def show() = {
println(Inner.name)
}
}
var name = "小明"
}
object OutClass {
class InnterSC {
}
}
2.隐式转换
1.类型的转换
2.不破坏原来类的结构上,赋予类其他功能
3.隐式值
1.implicit的优先级高于默认值
4.隐式类
1.不能放在类外面,编译器不支持,不能同名称
代码如下:
object Test2 {
def main(args: Array[String]): Unit = {
var int = 1.1
implicit var s ="mysql"
change1
val mysql = new Mysql
mysql.show()
mysql.add()
}
//隐式转换
implicit def change(int: Int)={
int.toDouble
}
//隐式值
def change1(implicit string: String="hhh")={
println(string)
}
//隐式类
implicit class change2(val m :Mysql){
def add(): Unit ={
println(m+ "add")
}
}
}
class Mysql{
def show(): Unit ={
println("mysql")
}
}
5.偏函数
![](https://img.haomeiwen.com/i9049859/ee4d39835941dc9b.png)
var list = List(1,2,3)
println(list.collect({ case i: Int => i + 1 }))
// println(list.collect(data => data match { case i: Int => i + 1 }))
网友评论