質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

276閲覧

ソースの読み方のコツについて

feeling_jumper

総合スコア19

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/08/06 01:38

マイクラのmodをいくつか作れるようになったものですが、
javaに慣れてないというか、勉強不足のため、ソースの読み方?がわからず、
困っています。

よくチュートリアルなんかで最初にある「レシピの追加」なんですが、

GameRegistry.addRecipe(new ItemStack(Items.diamond)

初心者である私は、これを見たときに、
あ〜GameRegistryクラスのaddRecipeメソッドを使えば、
レシピが追加できるのか〜!と考え、

じゃあどういう仕組みで追加されるんだろーと知りたくなり、
addRecipeメソッドを見ます。

すると、
public static void addRecipe(ItemStack output, Object... params)
{
addShapedRecipe(output, params);
}
こういう箇所に目がいくわけですが、
ここからの解読がチンプンカンプンになるのです。

特に、()のなかに、いろいろ入っていたときに、
あ〜〜どういうことだ〜〜!!><となってしまいます。。

modの開発方法を知りたいのではなく、
ソースの読み方のコツなんかがあれば、どなたか教えていただけないでしょうか。

たとえば、
レシピの追加するには、ここのクラスとこのクラスを使っていて〜
それがこういう風に組み合わさってレシピの追加になってるんだよ〜
という、それだけでも知りたいのです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

質問者さんの例における()の中には、引数と呼ばれるものが入っています。
引数とは、関数(この場合はaddRecipeやaddShareRecipe)に渡す物のことです。

例えば、int型の変数xとyを合計する関数sumを考えますと、sum(x,y)となります。合計する際に、xとyが分かっていなければ合計のしようがないので、関数にxとyを渡す、というわけです。

Object... params、というのが不明であれば、「引数 "..." java」などで検索します。すると、これがどういうものかわかりますので、それをもとにしてソースコードを読み解いていきます。
質問者さんの例だと、これは可変長引数というもので、任意の数だけ引数を渡すことができます(もちろん、受取先の関数で数が制限される処理がなされていることもあります)。

この上に書いてある引数、関数といったものが分からない場合は、そもそもの文法がぼんやりとしてしまっているということですので、「Java 入門」などで検索してみてください。きちんと文法ですとか、用語の基礎知識を頭に入れる時期まであなたが進んできた、ということです。

この段階を乗り越えておけば、割と大抵のプログラミング言語のソースコードは読めるようになってきます。
あとは、知りたい段階に合わせて、関数の中身を辿っていくのが良いかな、と思います。

また、関数の役割が分からないときは、関数名でWeb検索などしてみるのも手です。先の回答のように、documentationと呼ばれる、「これはこういう役割をするよ」と書いてあるものや、用例つきで解説しているサイトを探すことができるでしょう。
マインクラフトのMODということで、documentationは公式サイトから探すか、Web検索で見つけることになるかと思います。

以上、質問者さんのお役に立てるといいのですが…。

投稿2018/08/06 07:59

suquiya

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

feeling_jumper

2018/08/06 08:45

こんなヘタレなわたしにこんなにも丁寧に... お忙しいところ回答のお時間をいただき本当にありがとうございます!> < なぜかすんなり理解できるようになってきました。。 ありがとうございました!
suquiya

2018/08/22 00:59

理解できるようになってきたということで、良かったです。 あと、あまり大規模なMODなどを作成するときは、様々な方面に弊害が出ないよう、ドキュメンテーションなどの確認をお勧めいたします。
guest

0

特に、()のなかに、いろいろ入っていたときに、

あ〜〜どういうことだ〜〜!!><となってしまいます。。

質問者さんは基礎すら出来ていないと思います。

これぐらいは入門書に載っています。

入門書 + documentation

documentationって呼ばれていますが、ヘルプファイルみたいなものです。

こういう引数を受け取るよ。こういうデータを返すよ...とかね。

Javaだと System (Java Platform SE 7 ), C++なら cppjp みたいなサイト。

投稿2018/08/06 04:13

BeatStar

総合スコア4958

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

unz.hori

2018/08/06 04:16

同意。言語の文法が分からないのに理解できるわけがない。
feeling_jumper

2018/08/06 08:47

みなさん、こんな阿呆なわたしに...ありがとうございます>< 勉強不足で、申し訳ありません。。(T-T )(T-T ) 出直してきます・゜゜・(/□\*)・゜゜・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問