A category consists of objects and morphisms between objects. The term "morphism" is a little bit misleading (they are not required to morph anything); so morphisms are frequently called "arrows", to stress their abstract nature.
I'll use the term "arrow" except when an arrow represent some kind of function, in which case I'll call it a "morphism". But it's still just an arrow to me.

We do not care about the nature of object and arrows; all we need are the following properties:

An arrow starts at an object and ends at another (may be the same object); this is denoted in the following way: f: a → b, where f is an arrow, and a and b are objects;

  1. For arrows f:a → b and g:b → c there is an arrow
    h: a → c that is called their composition: h = g ° f.
  2. For each object a there is a unit arrow, ida: a → a, such that for any f: a → b the following is true:
    f ° ida = f, and for any g: c → a we have ida °g = g.
  3. Composition is associative: f ° (g ° h) = (f ° g) ° h.

Note. Due to an extremely abstract nature of the notion, we cannot even expect "all objects" to form a set, or "all arrows from a to b" form a set. Categories where these are sets are called "small" and "locally small".