ぷろぐらみんぐ(もっちり)スマートフォン用の表示で見るふにふにぷろぐらみんぐ(もっちり)プログラマー?いいえ、技術オタクです。第2版で、独学をしているめいなです。こんにちは!毎週1章、土曜の23:59までに終える!と自分で目標を立てているんですが、第5章の章末まで一度もサボらずにこれましたー。えへへでも、書けば書くほどどうすればいいのか頭がこんがらがってくるので、はてなちゃん(ブログ記事編集画面)に話しながら考えてみたいと思いまーす数ヶ月後、あるいは数年後に読み返したときにツッコミができるようになってますよーに!今回の5章はメソッドについての章だったんだけど、基礎から応用まで一気に駆け抜けていて、「本当にこの書き方で理解できるの?正しく動くの?負荷はどうなの?」と思えるソースコードがよく出てきたし、ぼくの頭では完全には追いきれなかった...。1章30ページ程度という制約を設けていて、その中になんとか収めたんだろうな、という感じ。あとは自分で補完するしかない!と思ってはいたけど、章末問題を解いてみたら、ことごとく解答例と違うコードを錬成してしまった(笑)他にも「これって運用するにはどっちの方が便利なの?」とか「他のプログラマにとって読みやすい(間違いにくい)のはどっち?」とか「ぼくのコードの何がいけないの?(解答例として取り扱われなかった理由)」とか、まーいろいろ気になったので書き残しておきます。博識なIT系はてなー様方の忌憚なきご意見もいただけたら嬉しいです。以上3行を、それぞれの引数を使用して出力するはじめに書いたコードがこれ。}}引数リストはメソッドの後ろの()内に記述するというのを完全に忘れていて(ぼくには難しすぎた)、メソッドの中身で変数を宣言しまくって、出力内容まですべてメソッドまかせにしているコード。これでもちゃんと動くんですよね...引数リストを渡さなくても。ぼく的にはこういうコードが一番分かりやすくて好きです。続きましてー、解答例を見て「そういえば、引数リストはメソッドの後ろに書くんだった!!そうだった!」と叫んで、書き直したコードがこれ。}}いちおう、教本に乗っていた「複数の引数を渡す例」の部分を参考に書いたものです。いうか成分的にはわりとそそのままです。変数の後ろの()内に直接データをぶち込むやつ。ぶち込む個数と受け取り側の個数、またその順番が必ず正しくなければならないという制約が怖い。長いコードを書くとき、対応箇所を探すだけで一苦労になりそうなのに大丈夫なのかな?というのがぼくの所感です。ここまで書いてて思ったことがあるので聞いてください。ぼくは今まで「[email]だけがメソッド名で、それを呼び出せれば引数リストとかどーでもいーじゃん...と思っていたけど、実際には引数まで含めて初めて本当のメソッド名になるのでは?「email」だけだと複数のケースの想定ができなくて不便だから、メソッドの中身を引数として()内に記述し、名前の一部としているのでは?この考えが正しいとすれば、mainでemail();だけを呼び出すプログラムはやっぱり不親切な設計ということになるよねー。それでもデータをぶち込むのはやっぱり抵抗があるな...と思いながらチェックした解答内容がこちら。}}mainの中で変数を宣言するんかい!確かにmain中でうっかりした事故は起こりにくそうだけど、その代償に使える変数がどんどん減っていく気がする...。メソッドは他のメソッドに対してスコープの影響をかけずにあれこれできて、そのわりにメソッド名を呼び出すだけで実行が実現できる!という便利機能のはずなのに、なんとなく本末転倒なような。メソッドに引数を指定してしまうとmainメソッドにも引数を指定する必要があって、そのためにはmainメソッド内で変数を宣言しなくちゃいけないので、これも仕方がなさそう。個人的に引数リストは極力使いたくない(笑)メソッドAの中に複数の値を宣言しておいて、メソッドAを取り出すときに指定した値だけとりだしてくれる感じだと神!だと思う。メソッドAに入ってる変数と値の一覧が参照できるコマンドとかあればなおいいなー。リファレンスすれば変数名を間違うこともないし。なんとなーく、じわじわーと、Javaちゃんの意思の強さが露見してきたような気がする。Javaちゃん、おしとやかで万能なクラス委員長タイプかと思ってたけど、意外にも芯の部分はしっかりしていて簡単には意見を曲げなそう。笑Javaちゃん完全攻略に向けて頑張ろー。以上3行を、それぞれの引数を使用して出力する「こんなの、オーバーロードなんかしなくてもさっきのmailメソッドを書き換えたらええやん!」とドヤ顔していたぼく(アホなので)。引数の数が違うから、オーバーロードしてできないことはないけど...やっぱり、オーバーロードも極力使いたくない(笑)ここまでブログを書きながらいろいろ考えてきたけど、1つのメソッドに対して複数のケースを持たせたいなら、いっそのことメソッド名を変えた方が安心できる...気がする。emailメソッドを親として、そこにすべての要素を書き込んでおいて実際に使用するのはemailの子メソッドとか。親メソッド(email)は資料用で、メソッドとしては使用してません。邪魔な情報になってしまうけど、いろいろと正しいかどうかを精査する必要のある引数ぶち込みよりはいいんじゃないかな...。コードの邪魔になるようなら別ファイルにメソッドリファレンス(人間用)を作って参照しながら進めたらいいかも。子メソッドの命名法としては、2進数でやれば単純明解で良さそう。親メソッドで宣言してる変数が5つなら0が5つから出発して、実際に使用する変数がある場所を1に書き換える感じで。章末問題があるんだけど、解答例のコードがよく分からない(笑)し、頭が疲れた(笑)し、たぶんめちゃくちゃ長くなる...のでまた今度にしまーす。こんなぼくが書いたコードでもちゃんと意図通りに動かせたので、プログラミングって奥深いなーと思います。ラクをするための努力は惜しまない、なかなかアレな姿勢でこれからも頑張るぞぃ。-はてなブログについて:ソース埋め込み術を、しかもシンタックスハイライトつきのやつを会得しました!やったー!といってもめちゃ簡単ですよね。その機能を使うためにまさか「はてな記法モード」にしなきゃいけないとか思いもよりませんでした(笑)確かに普通の人には不要な機能だもんなあ。URLを埋め込むのもできるようになったし、なんとなくおしゃれなブログっぽくなってて、すげえ!と言うより他ないです。Studio)メソッドの書きかたのメソッドはてなブログ始めました月別アーカイブはてなブログをはじめよう!mei7aさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。