Train Docs
Fall 2025
API

# TrainCar

o1.train.TrainCar
trait TrainCar

This trait represents the passenger cars of a train in a train ticket reservation system. It describes the common operations of all passenger car types. Different classes representing different kinds of train cars will have different implementations for these operations.

In this simple implementation, no data is stored about who has reserved which places (seats, beds, or the like) in the cars. A car object only keeps track of whether a place is reserved or not.

A train car’s state is mutable; it changes as reservations are made.

## Attributes

Graph
Supertypes
  class Object
  trait Matchable
  class Any
Known subtypes
  class SittingCar
  class SleepingCar

## Members list

### Value members

#### Abstract methods

def numberOfFreePlaces: Int

Returns the number of free, unreserved places (seats, beds, or the like) in this car.

Returns the number of free, unreserved places (seats, beds, or the like) in this car.

## Attributes

def numberOfPlaces: Int

Returns the number of places (seats, beds, or the like) this car has for passengers. This is a positive number.

Returns the number of places (seats, beds, or the like) this car has for passengers. This is a positive number.

## Attributes

def reservePlaces(`numberOfPeople`: Int): Boolean

Reserves places (seats, beds, or the like) in the car for a group of people whose size is indicated by the parameter. The whole group should be able to get places that are reasonably close to each other (what exactly this means is left for concrete classes to decide). If it is not possible to reserve suitable places for all members of the group, no places are reserved at all. The return value indicates whether the places were reserved or not.

Reserves places (seats, beds, or the like) in the car for a group of people whose size is indicated by the parameter. The whole group should be able to get places that are reasonably close to each other (what exactly this means is left for concrete classes to decide). If it is not possible to reserve suitable places for all members of the group, no places are reserved at all. The return value indicates whether the places were reserved or not.

## Attributes

#### Concrete methods

def fullness: Double

Returns a figure between 0 and 100 that indicates how many percent of the car’s passenger places have been reserved.

Returns a figure between 0 and 100 that indicates how many percent of the car’s passenger places have been reserved.

## Attributes