C言語においては、明確にこれらの用語の意味は違うのですが、JavaやVB.NET、C#においては曖昧であるように思います。
例えば、Javaにおいて、「class Hoge{}」というコードを書いたとき、これを「クラスの宣言」と呼べばよいのか、「クラスの定義」と呼べばよいのか、どちらが適当でしょうか?
一般的な使い分けとしては、「宣言 (declaration)」はある識別子を言語処理系が認識できるようにすること(*)、「定義(definition)」はその識別子に正確な意味を与えること、となると思います。言語によってこれらは別々であることもありますし、同時に行われることもあります。同じ言語内でも識別子の種類によって、宣言と定義が常に一緒のものと別々でも良いものが混在していたりします。
複数の言語に渡って一般的な説明をする場合は、どちらの動作を説明しているかによって使い分ければ良いと思います。
一方、Javaの文法の説明をしている場合は「宣言」とするのが良いでしょう。なぜなら言語仕様でDeclarationとなっているからです。
http://java.sun.com/docs/books/jls/third_edition/html/j3TOC....
VB.NET, C#等でも仕様に当たれば良いと思います。
(*)これについては例えば Fischer & Grodzinsky:"The Anatomy of Programming Languages", section7.1.2等。
私はクラスをコードコーディングする時は「定義」、実際にインスタンスを作成する時を「宣言」って使ってます。