zoukankan      html  css  js  c++  java
  • scala的面向对象编程

    一:简单的编程

    1.scala的简单编程

     1 package er
     2 
     3 class People{
     4   var name:String="";
     5   val age:Int=10;
     6   def eat():String={
     7     name+" eat...";
     8   }
     9   def watchFootBall(teamName:String):String={
    10     name+" is watch match of "+teamName;
    11   }
    12 }
    13 object two {
    14   def main(args: Array[String]): Unit = {
    15     var people =new People;
    16     people.name="tom";
    17     println("name="+people.name);
    18     println("age="+people.age);
    19     println(people.eat());
    20     println(people.watchFootBall("zhongguo"))
    21   }
    22 }

    2. 效果

      

    3.构造方法

      主构造方法,辅助构造方法。

      辅助构造函数是在主构造函数没有的情况下,执行的构造函数。

      调用对象的时候会调用主构造方法。

      辅助构造方法必须去调用主构造方法

     1 package er
     2 
     3 class People2(val name:String,val age:Int){
     4   //************辅助构造函数**********
     5   def this(name:String){           //*
     6     this(name,0)                    //*
     7   }                                 //*
     8   def this(age:Int){                //*
     9     this("xx",age)                  //*
    10   }                                 //*
    11   //************辅助构造函数**********
    12   def sayHello()=println("name:"+name+",age:"+age)
    13 }
    14 object thrid {
    15   def main(args: Array[String]): Unit = {
    16     val people=new People2("zhangsan",10);
    17     people.sayHello();
    18   }
    19 
    20 }

    4.效果

      

    二:半生类与半生对象

    1.object的介绍

      

    2.半生类和半生对象

      

    3.半生的案例程序(半生类可以调用半生)

     1 package er
     2 
     3 class Thrid(val name:String,val age:Int){
     4   private val eyeNum:Int=2;
     5   def this(name:String){
     6     this(name,0)
     7   }
     8   def this(age:Int){
     9     this("xx",age)
    10   }
    11   def sayHello()=println("name:"+name+",age:"+age)
    12 }
    13 object Thrid {
    14   def main(args: Array[String]): Unit = {
    15     val thrid=new Thrid("zhangsan");
    16     //直接调用半生类中的属性
    17     println("eyeNum is : "+thrid.eyeNum);
    18   }
    19 
    20 }

    4.效果

      

    5.apply方法

      一种简单的创建class的方式。

      

     6.apply的程序示例

     1 package er
     2 class Four(name:String){
     3   def say()=println("name is "+name);
     4 }
     5 object Four {
     6   def apply(name: String): Four = new Four(name)
     7   def main(args: Array[String]): Unit = {
     8     //因为使用了apply方法,其实apply是在new对象,所以下面就不要再new了
     9     var a=Four("uiui")
    10     a.say
    11   }
    12 }

    7.效果

      

    8.get与set方法

      

    9.不会产生公共的get与set方法

      当权限是private的时候

      

      产生 的set与get方法是private的,只能在类的内部使用。

      

    10.val定义的字段

      val定义的字段,只会生成getter,因为他的值是不会变的。

    11.class中的介绍

      在主构造方法执行的时候,会执行类中的所有语句,除了方法,相当于构造器

      如果参数的声明不带val或者var,那么相当于private,只能在内部使用

      

      

  • 相关阅读:
    springboot:快速构建一个springboot项目
    SpringBoot Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.
    springboot添加swagger2组件
    Mysql实现企业级数据库主从复制架构实战
    方案优化:网站实现扫描二维码关注微信公众号,自动登陆网站并获取其信息
    网站实现扫描二维码关注微信公众号,自动登陆网站并获取其信息
    九度OJ 1402 特殊的数 -- 位操作
    九度OJ 1385 重建二叉树
    九度OJ 1386 旋转数组的最小数字 【算法】
    九度OJ 城际公路网 -- 图论
  • 原文地址:https://www.cnblogs.com/juncaoit/p/6254096.html
Copyright © 2011-2022 走看看