zoukankan      html  css  js  c++  java
  • (一)scala方法/包/getter/setter

    新建scala项目

    1 没有原生类型,只有引用类型
    2 没有操作符,所有操作都是方法调用

    没有返回值的打印是(),java的syso没有返回值的打印会报错。

    object Hello {
      def main(args: Array[String]): Unit = {
    
    //    var i = 8
        var i : Int = 0
        var k = i .+(4)       //.+是调用的方法
        var j = i + 4         //‘+’实际上是调用的上面的方法
    
        new Range(1,5,1)       //new 对象能new Range有三个参数的,而只有两个参数的不能new
    
        println(Range(1,10))
        //折两个等效,to方法返回的是Range类型的。
        println(1 to 10)
    
        for(i <- 1 to 10){
          println(i)
        }
        for(i <- Range(1,10)){
          println(i)
        }
    
        func
        println(func())     //没有返回值的返回(),java中没有返回是System.out.println会报错,不能打印
        func()
        println(func3())
    
        func1(3,4)
        println(func2(5,6))
        
        var res = if(j<2) ("小于2") // else ()
        println(res)                //返回(),相当于else ()
        
      }
      def func3() ={
          println("func3")
      }
    
      def func(): Unit ={
        println("func")
      }
      def func1(x:Int,y:Int): Unit ={
          println(x+y)
      }
      def func2(x:Int,y:Int): Int ={
    //    return x+y
        x+y
      }
    
    }

    scala可以包中嵌套包

    package com.it18zhang{
        package my{
          class Cat{
             val color = "yellow"
          }
        }
        package myscala{
          class Dog{
            
          }
        }
    }

    Getter和Setter方法

    定义变量自带getter和setter方法,常量(val)只有get方法

    import scala.beans.BeanProperty
    
    object Getter_Setter {
      def main(args: Array[String]): Unit = {
        val p1 = new People
        p1.name_=("Wang")
        p1.name = "Zhang"
        println(p1.name)
        
        p1.setName("Hoow")
        println(p1.getName)
      }
    }
    class People{
    
    //   @BeanProperty var name : String = null
    
      var name : String = null
      //为方法设别名
      def getName = name
      def setName(x:String) = name_=(x:String)
    }

    编译生成class文件

    scalac Getter_Setter.scala

    使用java命令反编译文件

    javap Getter_Setter.class

    另一个class文件带有$

    javap Getter_Setter$.class

    也可使用@BeanProperty注解来生成getter/setter方法

      @BeanProperty var name : String = null
  • 相关阅读:
    swiper 增加一个鼠标移入分页器的小点后就切换展示图片
    css中的单冒号和双冒号 以及 伪类和伪元素
    pointer-events: none;元素永远不会成为鼠标事件的target
    jQuery off() 方法
    jQuery方法汇总
    vue 数组修改 页面无法刷新
    mysql error Code 1441:datetime function: datetime field overflow
    生命的意义
    删除镜像或容器
    nginx Redis 不能访问问题
  • 原文地址:https://www.cnblogs.com/apppointint/p/8885294.html
Copyright © 2011-2022 走看看