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