[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
呼び出すメソッドを、呼び出し元と同じファイルに書いたほうが、処理が早い。
-------
(7/9 追記)
private や static なメソッドはインライン化される可能性がある。
インライン化とは・・・
呼び出し元のメソッドと、呼び出される側のメソッドが、メモリの連続領域に展開されること。
ポインタを経由することを省くので、パフォーマンスが向上する。
処理が早くなるってことだね!
ただし、インライン化するかどうかはJVMが、メモリの余裕を見て決めます。
なので、private だから、static だから、同じファイルに書いたから、
必ずしもインライン化されるとは限りません。
str = str + "123";
元の str = "abc" に"123"を足して str = "abc123" となっているように見えるが、
str = str + "123";
を実行した時に、新しいString型オブジェクトが作られている。
String str = "abc123";
と新たに宣言しているのと同じ。
String型は変更を加える度に、新しいオブジェクトが作られている。
デフォルトコンストラクタ・・・引数のないコンストラクタ。クラスの中に明示的にコンストラクタを書かないと、コンパイル時に自動的に作られる。引数があるコンストラクタをひとつでも書いていたら、デフォルトコンストラクタが自動的に作られることはない。
オーバーライド・・・親クラスのメソッドと、同じメソッド名、同じ引数で、処理を書き換えること。戻り値は関係ない。
~親クラスの keisan メソッド~
public int keisan ( int x, int y ) {
int z = x + y;
return z;
}
~子クラスの keisan メソッド~
public int keisan ( int x, int y ) {
int z = x * y + 1;
return z;
}
オーバーロード・・・ひとつのクラスの中にある。メソッド名が同じで、引数が違う。戻り値は関係ない。
~keisan メソッド①~
public int keisan ( int x, int y ) {
int z = x + y;
return z;
}
~keisan メソッド②~
public double keisan ( double x, double y ) {
double z = x * y + 1;
return z;
}
修飾子でどこまで参照できるか
private・・・そのクラス内のみ
何も書かない・・・そのクラス、同じパッケージまで
protected・・・そのクラス、同じパッケージ、サブクラスまで
public・・・どこからでも