Consider the vector space $\mathbb{R}^3$. Inside $\mathbb{R}^3$ we can choose two planes, as in the picture below. We'll call the green one $P_1$ and the blue one $P_2$. The plane $P_1$ passes through the origin but the plane $P_2$ does not. It is a standard homework exercise in linear algebra to show that the $P_1$ is a sub-vector space of $\mathbb{R}^3$ but the plane $P_2$ is not. However, the plane $P_2$ looks almost exactly the same as $P_1$, having the exact same, flat geometry, and in fact $P_2$ and $P_1$ are simply translates of one another. This plane $P_2$ is a classical example of an affine space.
$\,\,\,\,\,\,\,\,\,$
Suppose we wanted to turn $P_2$ into a vector space, would it be possible? Sure. What we would need to do is align $P_2$ with $P_1$ using some translation, and then use this alignment to re-define the algebraic operations on $P_2$. Let's make this precise. If $T: P_2 \to P_1$ is the alignment, for $p,q \in P_2$ we'll define $p \oplus q = T^{-1}(T(p) + T(q))$. In words, we shift $p$ and $q$ down to $P_1$, add them, and then shift them back. Note that this is different than simply adding $p+q$, as this vector need not lie on $P_2$ at all (one of the reasons $P_2$ is not a vector space, it is not closed under addition).
There are, however, many ways of aligning $P_2$ with $P_1$, and so many different ways of turning $P_2$ into a vector space, and none of them are canonical. Here is one way to make these alignments: pick a vector $v \in P_2$, and translate $P_2$ by $-v$, so that $T(p) = p-v$. This translates $P_2$ on to $P_1$, and sends $v$ to $0$. Conceptually, this translation "sends $v$ to zero", and this approach of "redefining some chosen vector to be the zero vector" always works to turn an affine space into a vector space.
If you want to do algebra on $P_2$ without picking a "zero vector", you can use the following trick: instead of trying to trying to add together vectors in $P_2$ (which, as we've seen, need not stay in $P_2$), you can add vectors in $P_1$ to vectors in $P_2$. Note that if $v_1 \in P_1$ and $v_2 \in P_2$ then $v_1 + v_2 \in P_2$. What we obtain is a funny situation where the addition takes place between two sets: a vector space $P_1$ on the one hand, and the non-vector-space $P_2$ on the other. This lets us work with $P_2$ without having to force it to be a vector space.
Affine spaces are an abstraction and generalization of this situation.
Consider a flat sheet. Given two points on the sheet, you can't add them, but you can describe how to go from the first point to the second point. And if you have instructions explaining how to go from point $A$ to point $B$, and further you have instructions for going from point $B$ to point $C$, then you can combine them into a single set of instructions for going from point $A$ to point $C$. And you can take those instructions (e.g., walk 10 feet north and 2 feet east) and apply them to any starting point to get a different ending point. If you say that you are going to measure everything with respect to a specific starting point $O$, every other point $X$ can be thought of as $O$ and the directions from $O$ to $X$.
An affine space is a generalization of this idea. You can't add points, but you can subtract them to get vectors, and once you fix a point to be your origin, you get a vector space. So one perspective is that an affine space is like a vector space where you haven't specified an origin. And given any vector space, you get an affine space by forgetting where the origin is, forgetting addition, but keeping subtraction and allowing yourself to add differences to points, so that you don't have $A+B$, but you do have $A+(B-C)$. Differences give directions, and you can add directions to points, but you can't add points to points.
We can generalize this idea further, which may shed some light: Let $G$ be a group and $X$ a space. An action of $G$ on $X$ is a map $G\times X\to X$ (written $g.x$) such that $g.(h.x)=(gh).x$ for every $g,h\in G, x\in X$. A $G$-torsor is a space $X$ with a group action such that for every $x,y\in X$, there is a unique $g\in G$ with $g.x=y$. $G$ is encoding the ways of getting from one point to another, there is a way to go from one point to any other point, the directions one can give can be applied to any starting point, and one can combine two sets of directions together by following the first set and then the second.
An affine space, is just a $G$-torsor where $G$ is a vector space.
The simplest example here is a point. The next simplest example is a line where we can say how far apart two points are, but no particular point is special. We can take a point and move left or right by one unit, but points cannot be added. So an affine line is like the number line, but we've forgotten where $0$ is.
Best Answer
An affine space $S$ is a set of the form $S=x+V$ where $x$ is a fixed vector and $V$ is a linear subspace. The dimension of this space is defined as dimension of $V$. ($V$ is a translate of $S$ because $V=\{-x+s: s\in S\}$).
Example: the line $y=x+1$ is affine in $\mathbb R^{2}$ and is is a translate of the one dimensional space $y=x$.