Java入門・初心者質問スレ Part.7

■ このスレッドは過去ログ倉庫に格納されています
2018/01/10(水) 11:06:04.02ID:ijSgjgrG
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.6
http://mevius.2ch.net/test/read.cgi/tech/1513783473/
436デフォルトの名無しさん
垢版 |
2018/05/05(土) 22:50:45.34ID:fekIGidl
>>435
どこの本じゃおらあああ!!!
説教してやるわ!
>>433さんお願いします
437431
垢版 |
2018/05/05(土) 23:14:03.22ID:6mpGGgHw
>>436
有名な、「スッキリわかるJava入門 実践編」です
該当箇所(p252)を引用します

「…flush()を呼び出さないとファイルに正しくデータが書き込まれないことがある
からです。
 実は、write()メソッドはデータの書き込みを要求するだけの命令であり、
呼び出したらすぐにファイルにデータが書き込まれるとは限りません。
これはファイルの読み書きを高速化するためのバッファというしくみによって、
後でまとめて書き込み処理がされることがあるためです。…」
2018/05/05(土) 23:14:53.02ID:ukbnMY+E
普通はcloseの内部でflushが呼ばれるか同等の処理がされるから、
きちんとcloseするプログラムの場合は明示的なflushは不要。
439431
垢版 |
2018/05/05(土) 23:44:43.67ID:6mpGGgHw
>>438
そうなんですか?
ありがとうございました
2018/05/05(土) 23:56:03.71ID:95YSYNlN
flush していないと、電源断・強制終了時に、書き込まれない

何秒おきに、flushされるかなどの設定は、
Java と言うよりは、OS・外部装置の挙動
2018/05/06(日) 00:07:10.53ID:GsL2vTC2
また35歳来てるのかよ
442デフォルトの名無しさん
垢版 |
2018/05/06(日) 00:14:34.04ID:iIP+eAYQ
flush使うのはログとかで途中経過を確実に見たいときだな
2018/05/06(日) 04:49:26.60ID:Bse1bLkg
flush() があった方が良いのは BufferedOutputStream や BufferedWriter のインスタンス経由で
出力していて尚且つ close() するよりも前に今まで出力した分がバッファから全て出力されて
欲しい場合だろう。そうでないのなら普通は無意味、というか、Bufferedでないクラスなら多分
何もしていない。(バッファがないなら flush() も何もないからね)。

>>431のプログラムの場合 FileOutputStream を作っているだけなのでバッファリングはされて
おらず write() した直後に書かれている筈だ。更に終わったらすぐに close() するだけなので
たとえバッファリングされていたとしても close() 前に flush() をする必要はない。

ただ問題は1バイトづつ読んだり書いたりするようになっていて非常に効率が悪いことだ。
入出力は両方ともこんな風にバッファリングされるようにした方が良い。

InputStream is = new BufferedInputStream(url.openStream());
OutputStream os = new BufferedOutputStream(new FileOutputStream("dj4.ico"));

更に読み書きする部分も以下のように自分でバッファ作ってまとめて読んでまとめて書くようにした方が良い。
(1000である必要はない。もっと大きくても良い)。

byte[] buf = new byte[1000];
int n;
while ((n = is.read(buf)) > 0)
 os.write(buf, 0, n);

こうした時の速度差は何Mバイトとか何Gバイトもの大量のデータを扱うと分かると思う。
(但しJavaコンパイラやJITの最適化、およびJavaVMやOSやハードウェアの進歩により
将来的にはどう書いても速く動くようになる可能性はある)。
2018/05/06(日) 08:27:00.47ID:6iNSfcwx
FileOutputStreamはJava側ではバッファリングしていないが
OS側のファイルシステムがバッファリングしてる場合もあるので、
flush呼び出しで明示的にディスク書き出しを指示できるので完全に無意味って事はない。

ただしディスク書き出しを指示するっても指示された側が直ちに実行するとは限らない。
典型的にはflushの呼び出しが終わった時には書き出しが終わっている事が期待されるが
実際にはディスクアクセスの優先順位待ちとかでflushの呼び出しが終わった時点でも
ディスクへの書き出しが終わってないとかそーゆーケースはある。
2018/05/06(日) 11:03:17.43ID:6iNSfcwx
FileOutputStreamだとflush上書きしてねーから>>444はウソだったわ。
2018/05/06(日) 16:44:24.01ID:Bse1bLkg
Java 側で FileOutputStream を使っていても OS 側で密かにバッファリングされていた場合は
Java の方からではどうすることもできないかもね。

ま、実際今時のOSだとディスクに対するライトキャッシュはデフォルトではONになっているのが
普通だろうからどんなプログラムでも(Javaであろうがなかろうが)OSのシステムコールの write()
直後にディスクに書かれていないことはあり得る。但しその場合は write() 直後に read() すると
あたかもディスクから読んだかのように書いた内容が読める。しかしいきなり電源が落ちると
ディスクに書いてない分の内容は失われる。

これを防止する方法は Linux ならシステムコールの sync() を呼ぶか sync コマンドを
実行れば良いのだが、しかし他のOSでは違うやり方になるだろう。統一された方法はない。
大雑把に UNIX 系 OS だと sync() でやると昔からの慣習で決まっているだけ。同じUNIX系
OSでも違う場合もあり得るし特殊なハードウェアのディスクの場合は違うかも知れない。

などという細かい事まで考えないといけないぐらい高度な要求があることは滅多にないだろうが、
どうしてもそこまで考えて作らねばならない場合は本当に Java だけで実現できるのか、または
Javaで作ることは適切かを事前によく検討した方が良いと思う。
2018/05/06(日) 23:24:51.40ID:LrvTqzkb
Linux では、アイドル時間を利用して、5秒毎にデバイスに書き込んでいるけど、

SSD の寿命対策で、書き込み回数を減らしたい場合に、
15秒毎とかに設定することもある

またデバイスも、バッファ・キャッシュを持つから、
バッファに書き込んだ時点で、OS に書き込み完了を知らせるかも知れない。
ここで電源断すると、デバイスに書き込まれない

まあ、デバイスの設定は、よく知らないけど
2018/05/07(月) 11:28:57.25ID:sRlF3JnI
作成するアプリの規模にもよるかもしれませんが、
非同期処理を安全に書くために調べたら数年前まではRxJavaが流行りそうって記事が多いけども、
今はAsyncTaskとかで十分なのかな?
449デフォルトの名無しさん
垢版 |
2018/05/10(木) 20:09:13.57ID:2zvsPgeN
Javaについてこの理解であってますか?
1 ソースコードは互換性がありどのJDKでもコンパイルできる
2 バイトコードは互換性がありどのJVMでも実行できる
3 JREやJDKはJVMとクラスライブラリを含む
450デフォルトの名無しさん
垢版 |
2018/05/10(木) 20:17:53.23ID:+tTPUtlU
>>449
教科書読めやハゲ
451デフォルトの名無しさん
垢版 |
2018/05/10(木) 21:02:09.83ID:CK5Copcn
>>449
大雑把にはそれでいいのだが標準ではないライブラリを追加して作られたプログラムはそれの無い環境では当然コンパイルエラーになる。
コンパイル済みのクラスファイルやそれを入れたjarファイルの場合は足りないライブラリのせいで動かない。
2018/05/11(金) 08:49:44.16ID:CudJysns
>>451
そんな当たり前のことはどうでもいいから、>>449が正しいか間違ってるか、大雑把にではなく正確に答えろや
断言できる知識がないからって「大雑把に」とか言って保険かけんな
2018/05/11(金) 15:40:03.41ID:iIfcglOt
やかましいわ!
2018/05/11(金) 15:45:41.92ID:Z82lyl/Y
1. 完全な互換性はないので同じソースコードが全てのJDKで必ずコンパイルできるとは限らない。
2. 完全な互換性はないので同じバイトコードが全てのJVMで必ず実行できるとは限らない。
2018/05/11(金) 16:21:23.17ID:UhEMsKag
>>452
当たり前ってわかってんなら>>449がどうかもわかるんじゃねーの?
2018/05/11(金) 20:24:20.11ID:Cbg+X5+f
Classクラスが持つメソッドについて質問です。
メソッドを取得するgetDeclaredMethod()やコンストラクタを取得する
getDeclaredConstructor()の引数に、Class<?>型が含まれているのですが、
何故この型なのでしょうか?
intやdoubleなどの基本型を取る場合もあると思うのですが…。
2018/05/11(金) 20:59:28.55ID:PddvfNsl
基本型を指定したい場合、ラッパークラスの.TYPEを使うんだ
intの場合Integer.TYPEとかそういう感じで
458デフォルトの名無しさん
垢版 |
2018/05/11(金) 23:49:17.69ID:BkhZdaXW
>>452
わかった。じゃあ厳密に答えよう。こうだ。

1 ×
2 ×
3 ○
2018/05/12(土) 00:44:10.56ID:zFimtC1H
>>456です。

>>457
ありがとうございます。

本によると、int.classとか見慣れない表記をしているのですが、
これでもよいのでしょうか?
2018/05/12(土) 10:16:25.78ID:UEBc/Ia0
>>459
>>457がぼけてただけだわ、int.classでよす
https://ideone.com/Xc37lP
461456
垢版 |
2018/05/12(土) 23:06:04.87ID:zFimtC1H
>>460
ありがとうございます。
int.classやlong.classなど、基本型名.classは何型になるのですか?
2018/05/13(日) 20:17:09.11ID:VaYQl2tk
レイアウトについて質問させてください。

(1)
Container contain = getContentPane() ;
contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS));
contain.add(new JButton("ボタン1")) ;
contain.add(new JButton("ボタン2")) ;

(2)
Container contain = getContentPane() ;
contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS));
contain.add(new JButton("ボタン1")) ;
JPanel p = new JPanel() ;
p.add(new JButton("ボタン2")) ;
contain.add(p) ;

(1)ではボタンが二つとも左端に表示されるのですが、(2)は両方とも真ん中になります。
なぜ両方とも左寄せにならないのか悩んでます。これってどうしてですか?
2018/05/13(日) 20:36:34.00ID:ZtGqqYsK
見たことない書き方だな
普通にレイアウト書いたらあかんの?
静的でも動的でもいいけど
464デフォルトの名無しさん
垢版 |
2018/05/13(日) 21:31:40.32ID:v233urWy
>>462
JButtonは、alignmentXのデフォがLEFT_ALIGNMENT
JPanelは、alignmentXのデフォがCENTER_ALIGNMENT

JPanelのalignmentXにLEFT_ALIGNMENTを設定したら
JButtonが左に寄った

BoxLayout内のコンポネントは独立して配置されるわけじゃないみたい
わしにはよくわからん
2018/05/13(日) 23:14:48.90ID:VaYQl2tk
>>464
ありがとうございます。でもそれだとボタン1は左に寄るんですけど、ボタン2はまだ真ん中なんですよね。
でも p を boxlayout.X_ASIS にしたらボタン2も左に寄りました。
でもなぜそうなるのか、何が何だか分からない。

Container contain = getContentPane() ;
contain.setLayout(new BoxLayout(contain, BoxLayout.Y_AXIS));
contain.add(new JButton("ボタン1")) ;
JPanel p = new JPanel() ;
p.setAlignmentX(Component.LEFT_ALIGNMENT);
p.setLayout(new BoxLayout(p,BoxLayout.X_AXIS));
p.add(new JButton("ボタン2")) ;
contain.add(p) ;

あと

p.setLayout(new BoxLayout(p,BoxLayout.Y_AXIS));
p.setLayout(new FlowLayout(FlowLayout.RIGHT)) ;
p.setLayout(new FlowLayout(FlowLayout.CENTER)) ;
p.setLayout(new FlowLayout(FlowLayout.LEFT)) ;

とか、あとボタンをさらに加えたり、色々試してみるんですが、よく分からない。
2018/05/15(火) 18:37:33.48ID:IdPDIHX7
正規表現について質問なんですけど、

String str = "会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探し、そのウェブサイトのURLを入力してください" ;

ここから会社名と住所を取り出したいんですけど、

Pattern pattern1 = Pattern.compile("[(] .* [)]");

これだと

( 多久比禮志神社 )、住所 ( 富山県富山市塩689 )

が取り出されるんですけど、何が悪いんでしょうか?( 多久比禮志神社 )と、( 富山県富山市塩689 ) を別々に取り出したいんです。
2018/05/15(火) 19:13:56.71ID:JYHluoOt
[( ].+?[)]
2018/05/15(火) 19:16:56.51ID:18kCbkVn
>>466
最長一致とかでググれ。

Matcher m1 = Pattern.compile("a.*b").matcher("ababab");
Matcher m2 = Pattern.compile("a.*?b").matcher("ababab");

System.out.println(m1.find() + " " + m1.group());
System.out.println(m2.find() + " " + m2.group());
469デフォルトの名無しさん
垢版 |
2018/05/15(火) 20:52:24.90ID:r6+CqG6i
>>466
こうかねえ

\\((.*?)\\)\\((.*?)\\)
470デフォルトの名無しさん
垢版 |
2018/05/15(火) 20:53:43.49ID:r6+CqG6i
あ、まつがえた
こうだな

\\((.*?)\\).*?\\((.*?)\\)
2018/05/15(火) 20:55:15.80ID:JYHluoOt
俺のレスが見えないのか馬鹿ども
無駄な駄レスをまき散らすなアホ
472デフォルトの名無しさん
垢版 |
2018/05/15(火) 21:36:26.05ID:4HBr8Nk+
\\(([^)]+)\\)
2018/05/15(火) 22:08:48.50ID:JYHluoOt
  ∧∧
 (д´*)
 (⊃⌒*⌒⊂)
  /_ノωヽ_)
2018/05/15(火) 22:09:20.54ID:JYHluoOt
THE 性器表現
2018/05/15(火) 22:20:36.07ID:IdPDIHX7
皆さんほんとに感謝です。最長一致、最短一致は自分で調べていて目にはしていたんですが、解説を読んでもよく分かりませんでした。
こういうコードになりました。

String str = "会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探し、そのウェブサイトのURLを入力してください" ;
Pattern pattern1 = Pattern.compile("[(].*?[)]");
Matcher m1 = pattern1.matcher(str);
String[] id = new String [2] ;
for (int j = 0 ; j < 2 ; j++) {
  m1.find() ;
  id[j] = m1.group(0);
  System.out.println(id[j]);
}

出力結果

( 多久比禮志神社 )
( 富山県富山市塩689 )
2018/05/15(火) 22:36:23.61ID:JYHluoOt
お前さぁ
俺が一番最初に一番最短のまともな回答書いてやってるのに
なんで意味わからずアスタリスク使った方を選んでんだアホ
これだから馬鹿はイラつくんだよな
説明読んで正規表現もわからんってどんな馬鹿だよ・・
お前はもう二度と書き込むなアホ
477デフォルトの名無しさん
垢版 |
2018/05/15(火) 22:40:19.77ID:4HBr8Nk+
+は邪道でしょ
478デフォルトの名無しさん
垢版 |
2018/05/15(火) 22:40:58.19ID:4HBr8Nk+
>>473
でもアスタリスク使ってるわけだし
2018/05/15(火) 22:54:38.02ID:IdPDIHX7
>>476
申し訳ありません。ところで、あなたの [( ].+?[)] を使うと、

会社名( 多久比禮志神社 )
( 富山県富山市塩689 )

と出力されます。

[(].+?[)]

にすると

( 多久比禮志神社 )
( 富山県富山市塩689 )

になります。なんかまた謎が増えてしまって。
2018/05/15(火) 22:59:41.77ID:JYHluoOt
>あなたの [( ].+?[)] を使うと、

おめーが使ってる最初の括弧が2バイト文字だからそのまま使ってるだけなんだが
舐めてんのかお前?
2018/05/15(火) 23:01:13.76ID:JYHluoOt
あ、半角スペース入ってただけだわすまんな
っつーか揚げ足取って挑発してんのかおまえ?
あ?
2018/05/15(火) 23:09:47.97ID:IdPDIHX7
>>481
でも半角スペースが入ったら、「会社名」が何で含まれるんでしょうか?揚げ足を取りたいわけではなくて、ほんとに分からない。
2018/05/15(火) 23:30:36.21ID:IdPDIHX7
>>481
申し訳ありません。文字列が違ってました。

"2. 会社名( 多久比禮志神社 )、住所 ( 富山県富山市塩689 ) のウェブサイトを探・・・”でした。最初の「2」の後にスペースが入ってました。
重ねて謝罪します。ほんとに申し訳ありませんでした。
2018/05/15(火) 23:43:31.90ID:1bAdW6Zs
会社名や住所に()が含まれるときここに出た正規表現じゃ全部駄目
再帰的パターン使え
485デフォルトの名無しさん
垢版 |
2018/05/16(水) 01:40:48.31ID:Ncn1UiZB
だめだけど、そういう仕様にしなければいけないという指定はない。
2018/05/16(水) 04:29:15.58ID:OVunt3L8
* は、0回以上
+ は、0回以上
? は、0 か1回

{m} は、m回
{m,} は、m回以上
{,n} は、n回以下
{m,n} は、m回以上、n回以下

上は最長一致 (greedy)。
最短一致にするには、? を付ける (reluctant)

*?, +?, ??, {m,}?, {,n}?, {m,n}?

例えば、<div>あ</div> で、

<.*> なら最長一致で、<div>あ</div>
<.*?> なら最短一致で、<div>
487486
垢版 |
2018/05/16(水) 04:37:57.06ID:OVunt3L8
>>486
修正

>+ は、0回以上
+ は、1回以上
488486
垢版 |
2018/05/16(水) 04:58:36.97ID:OVunt3L8
修正

本当は最短一致なら、<[^>]*>

先頭が< で、> 以外の文字が、0以上あって、末尾が>
2018/05/16(水) 22:17:26.76ID:RliGnokV
なんで \\( と書かずに [(] と書く?
まあこの場合同じ事だけどさ。
2018/05/17(木) 00:43:44.49ID:yxB+aPaP
まだ前の人の質問が完結してないみたいですが、質問させて頂いていいでしょうか?

JUnitというツールを使いこなせれば、アサーションは覚えなくても問題無い
でしょうか?
2018/05/17(木) 04:45:13.62ID:tkjoiiDy
お前の頭に問題がある
2018/05/17(木) 10:22:35.65ID:CDjWE0Pi
これはよい炎上学習法
2018/05/18(金) 16:58:29.13ID:syGPQ258
boolean hoge1=false,hoge2=false;
if(hoge1 == true && hoge2 == true){}

こうやって書くともっとシンプルにって言われるんだけども、
どうやってシンプルに書くのでしょう?
if(hoge1 && hoge2 ){}
だと、両方falseでも条件を満たしますよね?
2018/05/18(金) 17:17:48.97ID:q0eVLi5m
>>491
>>492
意味分からんレスするなよ…
2018/05/18(金) 18:26:18.59ID:8ItvNdb4
>493
ヒント:入門書読み直し
496デフォルトの名無しさん
垢版 |
2018/05/18(金) 18:58:41.99ID:fM2r+Hus
>>493
やってみな
2018/05/18(金) 19:32:25.01ID:L1Y1ZEs3
>>493
頭悪い上に自分で試そうともしない
生きている価値のない究極の人間のクズ
2018/05/18(金) 19:36:55.94ID:KNJkfM12
>>493
https://ideone.com/oYN4oj
2018/05/18(金) 19:50:24.03ID:xP2z7JCS
System.out.println(true && true) ;
System.out.println(false && false);
System.out.println(true && false);

true
false
false
2018/05/18(金) 19:55:26.49ID:KNJkfM12
>>499
それは質問>>493の答えになっていない
501デフォルトの名無しさん
垢版 |
2018/05/18(金) 20:54:08.79ID:vSzWWhuT
なってると思うけどなあ
むしろQZの方が・・・
2018/05/19(土) 02:01:38.66ID:XScpv1fe
大規模開発用言語のHaxe なんて、
if の条件文は厳格で、Bool しか書けない

Bool以外の変数、a について、
if ( a )
は、コンパイルエラー

if ( a != null )
null でも、わざわざ比較する

if ( a == 1 )
if ( a = 1 )
こういう書き間違いを防ぐため
503デフォルトの名無しさん
垢版 |
2018/05/19(土) 07:20:54.81ID:b7x1I7X/
>>502
Javaもそうだよ。比較的新しい言語ってだいたいそうなってない?
2018/05/19(土) 09:05:01.70ID:yOmhUNnm
>>503
スクリプト言語はそうでもないよ
505デフォルトの名無しさん
垢版 |
2018/05/19(土) 09:39:45.34ID:b7x1I7X/
あー。スクリプトはそうか。
2018/05/19(土) 10:00:26.93ID:P9NZnjfr
>>497
それをワザワザ教えてあげる貴方いい人だ
俺も色んなカス見てきたけど
if (b == true)これ書く奴はまず頭も悪いし
プログラマとしてのセンスも皆無だと思う
現場を混沌に導く癌でしかない

>>501
俺もそう思った
Qちゃん今回はチョッとズレてたね残念
2018/05/19(土) 10:28:05.93ID:sq/G7sle
>>506
好みの問題だから君が言ってるのは
ワガママだと思うけどなあ
自分の価値観が絶対だと思ってるんでしょ
友達いなさそう
508デフォルトの名無しさん
垢版 |
2018/05/19(土) 11:39:44.12ID:BQeAYIRL
いゆしかし if (b == true) は人に何かがおかしいと感じさせるには十分
509デフォルトの名無しさん
垢版 |
2018/05/19(土) 11:52:24.95ID:zEl3eNvL
>>508
!bは分かりづらいからb == falseと書くことがあり
一貫性を持たせるために
b == true
b == false
と書きましょうとなることもある
可読性の話です
510デフォルトの名無しさん
垢版 |
2018/05/19(土) 11:55:25.27ID:zEl3eNvL
代替を「だいがえ」と言うようなものかな
おかしいけどわかりやすいっしょ
2018/05/19(土) 12:06:04.01ID:4IULO87O
あのなぁ
くだらないネタでいつまでもくだらないレスの応酬やめろボケカス低能ども
512デフォルトの名無しさん
垢版 |
2018/05/19(土) 12:08:35.09ID:zEl3eNvL
>>511
b == true
これありですよね?
513デフォルトの名無しさん
垢版 |
2018/05/19(土) 12:55:36.37ID:0KRdo9xC
【そこまで言って委員会】 津川「改憲、死ぬ覚悟ある?」 <ねーのかよw>  安倍「そんなwww」
http://rosie.5ch.net/test/read.cgi/liveplus/1526696087/l50
2018/05/19(土) 13:26:42.96ID:NVNSjmKt
>>501
詳しく
515デフォルトの名無しさん
垢版 |
2018/05/19(土) 14:46:06.80ID:zEl3eNvL
>>514
詳しく言うとQZのコードは論理的に破綻してるよねってこと
516デフォルトの名無しさん
垢版 |
2018/05/19(土) 15:21:18.38ID:sMDzLR8Y
>>509
いやそれそもそも分かり辛くないから
517デフォルトの名無しさん
垢版 |
2018/05/19(土) 16:01:59.23ID:zEl3eNvL
>>516
俺は困ってないからみたいな
分かりづらいと思う人が存在してることを受け入れるんだよ

お前は自分が良ければそれでいい
他人のことなんか知ったことじゃない
俺様こそが世界の全てだと思ってるクッパ野郎だろうけど
世の中にはクリボーもパックンフラワーも居るんだよ
518デフォルトの名無しさん
垢版 |
2018/05/19(土) 16:03:14.01ID:zEl3eNvL
ニンテンドーは世界の広さと多様性を教えてくれるとても素敵な企業だよね
519デフォルトの名無しさん
垢版 |
2018/05/19(土) 16:05:12.48ID:s0GlRA3+
>>517
分かりづらくない、いやむしろ分かりやすい、と感じ始めたところ辺りが初心者の終わりの始まり。
520デフォルトの名無しさん
垢版 |
2018/05/19(土) 16:09:55.41ID:zEl3eNvL
>>519
> 終わりの始まり
このフレーズ、30年前俺が中学の時一番最初に思いついた
著作権は俺にあるから、別に自由に使ってくれていいけど
最初に思いついたのは俺だからそこんとこ忘れないでくれ
521デフォルトの名無しさん
垢版 |
2018/05/19(土) 16:13:18.78ID:zEl3eNvL
FF13でヴァニラが使ってたときは恥ずかしくて枕に顔埋めたよね
それ俺のだから〜(///ω///)みたいな
俺が30年前中二病全開のときに思いついたフレーズだからみたいな
よくよく考えれば売上の何%か俺に入ってもいいよねこれ
522デフォルトの名無しさん
垢版 |
2018/05/19(土) 16:17:55.80ID:zEl3eNvL
>>519
あどうも、終わりの始まりさんこんにちわ
ドゥモ♪\( ̄ー ̄|電柱| ̄ー ̄)/ドゥモ♪
523デフォルトの名無しさん
垢版 |
2018/05/19(土) 16:19:15.09ID:zEl3eNvL
          ____
       / \  /\  キリッ
.     / (ー)  (ー)\   終わりの始まり
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ
524デフォルトの名無しさん
垢版 |
2018/05/19(土) 16:20:02.61ID:zEl3eNvL
久々に使ってもらえて嬉しかったからついつい失敬失敬
525デフォルトの名無しさん
垢版 |
2018/05/19(土) 17:11:27.14ID:s0GlRA3+
やはり if (b == true) なんて書くやつは何かがおかしいな。
2018/05/19(土) 17:13:12.24ID:ttKcchMI
自分は if (a && b) と書かれたコードを見たら、5秒か10秒くらい考える口だわ。
527デフォルトの名無しさん
垢版 |
2018/05/19(土) 17:27:23.55ID:zEl3eNvL
if (終わりの始まり) {
 >>525
}
528デフォルトの名無しさん
垢版 |
2018/05/19(土) 17:28:07.17ID:s0GlRA3+
ま、ifで条件式書かずに直接booleanの変数だけ使うのはあまりないけどな。
何らかの理由で複数回同じ比較をする必要があったりして、無駄だから比較結果を変数に入れといて実際に比較する代わりにそれ使うようにするとかな。
あとはメソッドの戻り値がbooleanで成功がtrue、エラーがfalseの時にifでそのまんま分岐させるとか。
529デフォルトの名無しさん
垢版 |
2018/05/19(土) 17:28:11.70ID:zEl3eNvL
ごめん、俺今日これから終わりの始まりだから
2018/05/20(日) 14:03:28.07ID:JyKbNFIa
>>520
https://ja.wikiquote.org/wiki/%E3%82%A6%E3%82%A3%E3%83%B3%E3%82%B9%E3%83%88%E3%83%B3%E3%83%BB%E3%83%81%E3%83%A3%E3%83%BC%E3%83%81%E3%83%AB
「今は終わりではない。これは終わりの始まりですらない。しかしあるいは、始まりの終わりかもしれない。」
"Now this is not the end. It is not even the beginning of the end. But it is, perhaps, the end of the beginning."

>>520
貴様は「始まる前に終わっていた」
531デフォルトの名無しさん
垢版 |
2018/05/20(日) 15:47:53.02ID:2vtHNIEh
>>530
あ、俺チャーチルの生まれ変わりかも
2018/05/21(月) 19:28:59.75ID:HQk+rkwS
public class A(){
int x;
int y;
/*(略)*/
}

みたいなクラスAがあったとして
クラスBにフィールドxを利用するメソッドをつくりたい場合

public class B(){
public void func(int ax){
/*(略)*/
}
/*(略)*/
}

とするのと

public class B(){
public void func(A a){
//a.xのみ利用
/*(略)*/
}
/*(略)*/
}

とするのではどちらが良い書き方でしょうか?
2018/05/21(月) 20:07:56.78ID:kCIhHpfP
クラスBのフィールドxを使いたいなら前者だし
クラスBのフィールドxに入っている値を使いたいなら後者

設計と考え方次第
2018/05/21(月) 20:08:48.56ID:kCIhHpfP
ああ、逆だ
値を取り出すべき人はだれかって話
535デフォルトの名無しさん
垢版 |
2018/05/21(月) 20:31:33.87ID:M7fGJX8z
>>532
将来的にクラスAの他の変数にもアクセスするように拡張するなら後者かな。

しかしB側のメソッドに値を渡す度に必ずAのインスタンスが必要になるわけで、それで効率悪くなるとかメモリ食い過ぎになるようなら前者かな。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況