第1章 初识scala

第1章 初识scala

  1. 语法简单说明
/*
  object: 关键字,声明一个单例对象(伴生对象)
 */
object HelloScala {
  /*
     main 方法: 从外面可以直接调用执行的方法
     def 方法名称(参数名称:参数类型):返回值类型 = { 方法体 }
   */
  def main(args: Array[String]): Unit = {
    println("hello scala")
    System.out.println("hello scala from java")
  }

}
  1. java中static关键字作用,java语法不足够面向对象,scala中直接把static关键字去掉
public class Student {
    private String name;
    private Integer age;
    // static关键字修饰,表示所有学生的学校都是一样的
    private static String school = "atguigu";

    public Student(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    /**
     * 用于访问类内属性
     * this表示当前对象,由于school为静态属性,直接用类名调用,此方法不足够面向对象
     */
    public void printInfo() {
        System.out.println(this.name + " " + this.age + " " + Student.school);
    }

    public static void main(String[] args) {
        Student scc = new Student("scc", 18);
        Student zyy = new Student("zyy", 18);
        scc.printInfo();
        zyy.printInfo();
    }
}
  1. object关键字,就是为了解决删除关键字static,又要去实现静态功能,而设计的,因此,scala是面向对象的语言。
package chapter01

import chapter01.Student.school

/**
 * 定义Student类属性和构造方法,也称object Student的伴生类
 * 里面不能声明main方法,要在object Student声明
 *
 * @param name 姓名
 * @param age  年龄
 */
class Student(name: String, age: Int) {
  def printInfo(): Unit = {
    println(name + " " + +age + " " + school)
  }
}

// 也称class Student的伴生对象,解决school属性问题,里面所有私有成员都是可以互相访问的
// 查看反编译文件,object Student对应的文件带$符号,又名伴生对象的所属类
object Student {
  // 解决java中static关键字问题,将school声明成String类型
  val school: String = "atguigu"

  // 声明main方法
  def main(args: Array[String]): Unit = {
    val scc = new Student("scc", 18)
    val zyy = new Student("zyy", 18)
    scc.printInfo()
    zyy.printInfo()
  }
}

你可能感兴趣的:(scala)