現在完了

フランス語の複合過去と同様、ドイツ語の現在完了は、過去の一点を表す時制です。
英語の現在完了のように継続の意味はありません。
(その場合、フランス語と一緒で、ドイツ語でも、現在形が使われます)

作り方は、「haben + 過去分詞」と「sein + 過去分詞」の2パターンがあります。
フランス語の複合過去でも、「être」を使うときと「avoir」を使うときがあるのと一緒です。

一般に、「haben」のほうが使われることが多く、「sein」は、移動したり、状態が変わったり、といった意味になる動詞でよく使われます。
これも、フランス語と一緒ですね。

「haben」 + 過去分詞

 Wir haben so viel gelacht!
 We laughed so much!

「haben」と「lachen(笑う)」の過去分詞「gelacht」で現在完了形を作っています。
このように、完了形に「haben」を取る動詞のことを「haben支配」の動詞と言います。

殆どの動詞は、この「haben支配」なので、以下の「sein」支配の動詞だけ覚えておけば、OKです。

「sein」 + 過去分詞

 Sie ist gestern nicht gekommen.
 She didn't come yesterday.

「sein」と「kommen(来る)」の過去分詞「gekommen」で現在完了を作っています。
このように、完了形に「sein」を取る動詞のことを「sein支配」の動詞と言います。

再帰動詞の場合

 Wir haben uns gefreut.
 We were delighted.

フランス語では、代名動詞の複合過去では「être」が使われるのに対し、ドイツ語では、再帰動詞の現在完了では「haben」が使われます。
この場合も、「sich freuen(喜ぶ)」という再帰動詞が「haben」を取って現在完了になっているのが分かると思います。

最後に

中には、「haben」「sein」の両方を取り、意味が変わる単語もありますが、これはもう、「文法」というより「語彙」の問題ですので、初心者のうちは、そういった動詞もある、とだけ覚えておけば十分だと思います。