大数据系列修炼-Scala课程07
2016-08-09 19:43
375 查看
核心内容:
1、Scala辅助构造器实战
2、Scala主构造器实战
(1)在Java当中,构造函数的名字和类的名字一样,但是在Scala中,构造函数的名字为this
(2)任何辅助构造函数必须要调用其他的构造函数才能使用(Java不是)
(3)Scala中的辅助构造函数除了以上两点其余用法和Java中的构造函数用法十分相似
示例程序:
对于Java来说,Java是这么来写这个程序的,大致上差不多:
1、若用户提供了主构造器,系统将不会再提供主构造器,否则系统将会提供无参的主构造器
2、在Scala中,每个类都有主构造器。主构造器并不以this方法定义,而是与类定义交织在一起定义
3、主构造器的参数将会被编译成类的属性成员
4、除了方法(函数)以外,主构造器会执行类中定义的所有语句
5、一旦用户通过private关键字来修饰主构造器,就只能通过辅助构造器来构造对象了
示例程序:(在上面程序的基础上改)
从上面的这个程序可以看出,Scala中因为主构造器的使用,程序编写更加简单灵活!
1、Scala辅助构造器实战
2、Scala主构造器实战
1、Scala辅助构造器实战 |
(2)任何辅助构造函数必须要调用其他的构造函数才能使用(Java不是)
(3)Scala中的辅助构造函数除了以上两点其余用法和Java中的构造函数用法十分相似
示例程序:
object App6 { def main(args:Array[String]):Unit= { val aa = new Student("zhangming",98.8) println(aa.name) println(aa.score) aa.fun() } } class Student { var name:String = _ //占位符将由编译器自动赋值 -->null var score:Double = _ //-->0.0 def this(name:String,score:Double) { this()//辅助构造函数调用主构造函数 this.name = name this.score = score } def fun()={println(this.name + "\t" +this.score)} }
对于Java来说,Java是这么来写这个程序的,大致上差不多:
public class App6 { public static void main(String[] args2) { Student aa = new Student("zhangming",98.8); System.out.println(aa.name); System.out.println(aa.score); aa.fun(); } } class Student { String name; Double score; public Student(String name,Double score) { this.name = name;//Java中并不需要调用别的构造函数 this.score = score; } public void fun() { System.out.println(this.name +"\t" + this.score ); } }
2、Scala主构造器实战 |
2、在Scala中,每个类都有主构造器。主构造器并不以this方法定义,而是与类定义交织在一起定义
3、主构造器的参数将会被编译成类的属性成员
4、除了方法(函数)以外,主构造器会执行类中定义的所有语句
5、一旦用户通过private关键字来修饰主构造器,就只能通过辅助构造器来构造对象了
示例程序:(在上面程序的基础上改)
object App6 { def main(args:Array[String]):Unit= { val aa = new Student("zhangming",98.8) println(aa.name) println(aa.score) aa.fun() } } class Student(var name:String,var score:Double) { def fun()={println(this.name + "\t" +this.score)} }
从上面的这个程序可以看出,Scala中因为主构造器的使用,程序编写更加简单灵活!
相关文章推荐
- 大数据系列修炼-Scala课程07
- 大数据系列修炼-Scala课程28
- 大数据系列修炼-Scala课程77
- 大数据系列修炼-Scala课程80
- 大数据系列修炼-Scala课程87
- 大数据系列修炼-Scala课程104
- 大数据系列修炼-Scala课程43
- 大数据系列修炼-Scala课程76
- 大数据系列修炼-Scala课程78
- 大数据系列修炼-Scala课程84
- 大数据系列修炼-Scala课程88
- 大数据系列修炼-Scala课程44
- 大数据系列修炼-Scala课程02
- 大数据系列修炼-Scala课程90
- 大数据系列修炼-Scala课程36
- 大数据系列修炼-Scala课程65
- 大数据系列修炼-Scala课程04
- 大数据系列修炼-Scala课程83
- 大数据系列修炼-Scala课程91
- 大数据系列修炼-Scala课程37