定義と宣言の違いがよくわからないのですが、どう違うのですか?