Features of Scala

    1. Object Oriented
      1. Everything is an object.
      2. Unlike Java , where we have primitives/static fields and methods that are not members of any object.

    Example: 1+2 is actually 1.+(2)

    1. Functional
      1. Functions are first-class values or citizens.
      2. Encourages immutability where operations like map() , input values to output, rather than change data in place
    2. Compatibility
      1. Compile to JVM bytecode
      2. Can call Java methods and fields
      3. Re-uses Java types
    3. Concise
    class Time(val hours: Int, val inutes: Int)
    public class Time {
    private final int hours;
    private final int minutes;
    public Time(int hours, int minutes) {
      this.hours = hours;
      this.minutes = minutes;
    public int getHours(){
      return hours; 
    public int getMinutes() {
       return minutes;