X



Java入門・初心者質問スレ Part.7
■ このスレッドは過去ログ倉庫に格納されています
0628デフォルトの名無しさん
垢版 |
2018/05/27(日) 03:32:13.63ID:cn9TbCYJ
必死だな
0629デフォルトの名無しさん
垢版 |
2018/05/27(日) 05:08:27.27ID:Hj9CmqVm
現場の人いじめられすぎわろた
0630デフォルトの名無しさん
垢版 |
2018/05/27(日) 07:00:39.85ID:3qyalsdQ
ぼくの反論できない相手はいじめられてることにしたいゴミマヌケ馬鹿w
もう少しがんばろうよぉ低能ぼくちゃんw
アホ
0632デフォルトの名無しさん
垢版 |
2018/05/27(日) 07:33:13.42ID:Hj9CmqVm
論はどこ?ここ?w
0633デフォルトの名無しさん
垢版 |
2018/05/27(日) 13:24:16.20ID:5OTEWY9F
必死だな
0634デフォルトの名無しさん
垢版 |
2018/05/27(日) 23:03:37.31ID:gjgcp9Ks
35歳Java歴1年半Java Bronze持ちが作成した最高傑作
https://ideone.com/JQbabV
0635デフォルトの名無しさん
垢版 |
2018/05/27(日) 23:16:50.41ID:aXpWBGla
>>634
やるじゃん
自力で作ったなら大したもんだよ
0637 ◆BrBq2CJg6HGd
垢版 |
2018/05/28(月) 04:50:14.54ID:YD5/Q0PF
>>635
それは誉め言葉と受け取っていいんですか?
0639デフォルトの名無しさん
垢版 |
2018/05/28(月) 08:17:53.96ID:HFFq2kIG
>>637
西暦1年から1,000,000,000年まで対応できるように変更してみましょう
ユリウス暦とグレゴリオ暦の存在と切り替え月に注意
0640デフォルトの名無しさん
垢版 |
2018/05/28(月) 09:31:06.33ID:KmDsu5r7
>>637
1日の曜日によって分岐させて個別に出力しているが、これを一つにまとめてみな。
最初にスペースをいくつ出すか、どのタイミングで改行するか、及び何日まで出すかの問題で、全て計算と条件判断でできるから。
0641デフォルトの名無しさん
垢版 |
2018/05/28(月) 11:20:05.66ID:iMaO4OwR
>>634
これは何か制約があって、こんな狂ったコードになってるの?
納入条件が1.5kstep以上になっているみたいな。
昭和の時代の、1行で中身を書ける関数なのに規模を水増しするために
if文で入力対復帰値を全部書いてたような狂気を感じる。
0643デフォルトの名無しさん
垢版 |
2018/05/28(月) 11:24:30.42ID:SNZlWZtl
724 : 仕様書無しさん : sage : 18/05/27(日) 19:34:26.51
論評。

>https://ideone.com/JQbabV

わざととしか思えない。人の領域を超える作品。
序盤はコピペとコピペを少し直しながらつなげつつ、最終的には
論理が破綻し崩壊していきながら、目的の実行結果になるためには
どうすればいいかと分からないながらも挑む苦悩が見え隠れし、
破綻したままコードは終焉を迎える。

>https://ideone.com/WZmNs5

ほっとする作品。
不慣れな感じと新しい技術を積極的に取り入れようとする姿勢が見え、
初心者が作りました、というのに相応しい作品。
逆に言えば1作目に比べて面白みに欠ける。よくあるフレーズを
よくまとめただけの作品。だがその中身はリファクタリングの域を
遙かに超え、元作の雰囲気を持ちつつリメイク・リビルドと言える
別作品に仕上がっている。

>https://ideone.com/bLfLVt

まあなんというか、ふつう。
練習用に提示したことを考えれば、難易度を抑えて教えたいポイントを
絞り、よくまとまっている。作者のやさしさが垣間見れる普通のコード。
0644デフォルトの名無しさん
垢版 |
2018/05/28(月) 11:48:48.03ID:HFFq2kIG
>>643
2つ目
最終日の後ろにもスペースが付く
3つ目
メンバー変数がpublic

ここらへんはそれぞれか
0645デフォルトの名無しさん
垢版 |
2018/05/28(月) 12:34:50.87ID:iMaO4OwR
2つ目はうるう年でないときの2月も29日まで出るんじゃないか?
maxDaysの2つ目の29は28でないとだめだろう。
0647 ◆BrBq2CJg6HGd
垢版 |
2018/05/28(月) 15:08:06.51ID:YD5/Q0PF
>>638
以下のように解釈することにします。

(35歳にしては)やるじゃん
(35歳の実力からすると)自力で作ったなら大したもんだよ
0649デフォルトの名無しさん
垢版 |
2018/05/28(月) 15:39:38.26ID:rs0fZbm/
>>646
Java
勘違いしてるようだけど、KotlinはJavaより覚えること多くて難しい言語だし、
Javaができないとライブラリの使い方分かんなくて話にならないよ
0650デフォルトの名無しさん
垢版 |
2018/05/28(月) 17:19:35.17ID:XWEtA5WQ
初心者には、か、実際どうだかなあ?
最終的にどちらも覚えるのが良いとは思うが。
0651デフォルトの名無しさん
垢版 |
2018/05/28(月) 17:54:07.27ID:zjFrbu6p
数年後にはなくなってるkotlinとかいうクソ言語の布教活動はいい加減やめような
な?
0652デフォルトの名無しさん
垢版 |
2018/05/28(月) 18:35:54.78ID:yucnVNXj
現代の世相を刹那に描き切った名作がkotlinなんだから、数年後のことを言うのは違うだろな。
アートを全く理解していない。
0653デフォルトの名無しさん
垢版 |
2018/05/28(月) 19:01:29.06ID:wGAafxHd
なくならんだろう。GoogleがAndroidでサポートするって言ってそこで爆発的に使用者増えたようだし。
Googleがやっぱ止めたと言い出しても有名になりすぎたのでもう消えようがないと思う。
0655デフォルトの名無しさん
垢版 |
2018/05/28(月) 20:20:16.05ID:GjCLG5ws
そうなのかなあ?
0656デフォルトの名無しさん
垢版 |
2018/05/28(月) 21:02:44.53ID:6mOoU4/q
javaの継承についての質問です
Humanクラスを継承して、TeacherクラスとDoctorクラスを作りました
別のメソッドが引数にTeacherだろうとDoctorだろうと引数に取れるように、
Humanクラスを引数に取るように設定しました

someMethod(Human human)

このメソッドの中でTeacherやDoctor固有のメソッドを使いたい場合はどうするのが正解ですか?
if(human instanceof Teacher){
((Teacher) human).teacherMethod();
}
とかキャストして使うしか無いでしょうか?
0657デフォルトの名無しさん
垢版 |
2018/05/28(月) 21:05:55.58ID:kS+Ih3IA
>>656
そう。
何度もキャストするのが面倒ならその型の変数作ってキャストした結果を代入して使えばいい。
0658656
垢版 |
2018/05/28(月) 21:12:55.23ID:ynHyzylc
なるほど、了解です。ありがとうございました
0659デフォルトの名無しさん
垢版 |
2018/05/28(月) 21:27:26.40ID:XFmVgxgX
human クラスに professon とか付随するメソッドを用意しておくのが正統なやり方か。
0660デフォルトの名無しさん
垢版 |
2018/05/29(火) 00:36:51.82ID:zVPinOAm
>>642
java.util.LocalDate 使って自分では何も考えずに作ったほとんど出力してるだけのもの。
https://ideone.com/ujLA0Y
0661デフォルトの名無しさん
垢版 |
2018/05/29(火) 01:43:13.54ID:AV9X1JaZ
javaが有料になるって本当なの?
今まで作ったものも金を払わないといけなくなるのか?
0663デフォルトの名無しさん
垢版 |
2018/05/29(火) 20:06:42.68ID:uuXmyyDB
booleanが条件式のif文で質問させてください

boolean bl ;
if(this.bl){

}

って書かれていたら、ifの条件文はどんな意味があるんでしょうか?
blがtureならif文を実行という意味でしょうか?
0664デフォルトの名無しさん
垢版 |
2018/05/29(火) 21:35:59.59ID:1TljkXCl
>>663
this が付いているということはインスタンス変数なので if 文のあるメソッド内で
宣言されている bl とは別の変数だ。

true なら if のブロック内に入るというのはその通り。
0665デフォルトの名無しさん
垢版 |
2018/05/29(火) 22:17:47.27ID:zEUbRZqD
>>664
先生、ありがとうございます!!
よく理解できていないので先生の文章を読み返し、理解できるように頑張ります
ありがとうございます
0668デフォルトの名無しさん
垢版 |
2018/05/30(水) 10:11:41.24ID:1+bA3F8k
>>656
型を判別して、処理を切り替えるのは、継承プログラミングではない。
型を判別している部分があったら、即ダメ!

継承すると、型判別が消えるはず。
それが継承プログラミング

Teacher・Doctor のどちらのインスタンスを渡しても、動くように作っていないとダメ
0669デフォルトの名無しさん
垢版 |
2018/05/30(水) 10:29:35.98ID:ugq2le2T
ま、確かに変と言えば変だな。
0670デフォルトの名無しさん
垢版 |
2018/05/30(水) 12:06:28.82ID:2ZsHiroy
Humanにabstructなメソッドか空メソッド用意しておいて、
Teacherのほうだけ中身を書く、Doctorのほうは何もしないで復帰にしてoverride、
Humanのメソッドからは単にそれを呼び出せばいい。
0674デフォルトの名無しさん
垢版 |
2018/05/30(水) 17:58:29.30ID:HCa7QHob
Ch[] c1=new Ch[3];
c[0]=new H();
c[1]=new T();
c[2]=new W();

for(Ch ct:c){
ct.setNo(ct.getNo()+1);
}

というコードがあったとして、
Ch ct ってインスタンスを生成しているように見えるのですが、そういう理解ではいけませんか?
0675デフォルトの名無しさん
垢版 |
2018/05/30(水) 18:05:16.62ID:kVCvsY3p
>>674
ループのところでChのインスタンス作ってるわけじゃないっしょ
代入してるだけでござろう
ゆえにそういう理解では良くない
0678デフォルトの名無しさん
垢版 |
2018/05/30(水) 18:58:18.41ID:KAg+tusB
ct はループの中で、c の0から2をそれぞれぞれ参照していくというのが正しい言い方なんですか?
0680デフォルトの名無しさん
垢版 |
2018/05/30(水) 19:46:28.89ID:GatrRteM
ヒント1:拡張for文
ヒント2:ググる
ヒント3:説明読む
ヒント4:初心者以前のレベル
ヒント5:上記のことが理解出来たら入門書読み直して理解できるまで絶対に質問しない
0681デフォルトの名無しさん
垢版 |
2018/05/30(水) 23:56:16.49ID:A3Z0kCh/
>>668
>型を判別している部分があったら、即ダメ

Hotelクラスを作りました
checkIn(Human human)メソッドを定義して、配列Human[] guestsに入れていきます
そのホテルはDoctorに対しては特別割引をしていました
その場合の宿泊料計算についても型判別を使ったらダメですか?
0682デフォルトの名無しさん
垢版 |
2018/05/31(木) 00:22:05.33ID:FEa+Gvkc
>>681
それは職業の属性を持たせるという方式でやった方が良いのではないか?
Job クラス作ってそのインスタンスで職業を保持するようにしておいてそれを Human クラスの中に持つ感じ。
何故かというと同じ人の職業が変化する可能性があるため。
0683デフォルトの名無しさん
垢版 |
2018/05/31(木) 00:48:52.60ID:6Vtm+2p4
>>682
なるほど、確かにそうですね。その通りです
感覚的に継承の使い所だと思って安易に継承を使ってしまうと後で困ってしまうということになりかねない
設計レベルで何をするのか固まってないと使うのは難しいのか
0684デフォルトの名無しさん
垢版 |
2018/05/31(木) 08:31:25.58ID:AKwCQjWG
>>683
というか継承いらない
継承は基本的に悪なので使わなくて済むなら使わないほうがよくて、原則としてインターフェイスと移譲を使えというのが今時のオブジェクト指向
継承は、どうしても継承を使ったほうが自然にコードを共通化できる場合に実装テクニックとして使うもの
0687デフォルトの名無しさん
垢版 |
2018/05/31(木) 16:34:30.21ID:VDYyuWAQ
どうせループの閾値をループ毎にコストの掛かる冗長な計算してましたってオチだろ
0688デフォルトの名無しさん
垢版 |
2018/05/31(木) 17:14:11.61ID:ZTEAvdsG
継承is-a よりも、包含has-a(委譲・インターフェース)の方が柔軟性がある。
継承を使うと、長期間仕様が固定される

怪物クラスの派生で、スライム・ドラゴンクラスがある時、
攻撃・属性とか、長期間に渡って、仕様が固定される

その代わりに、後に、幽霊クラスを追加しても、
同じ仕様だから、修正箇所が無い

もし、型判別するのに、switch 文を使っていたら、
何か所も修正して、テストしないといけないから、新たな怪物を作れなくなる

switch monster {
case slime:
case dragon:
case ghost: // 追加
0689デフォルトの名無しさん
垢版 |
2018/05/31(木) 22:13:50.67ID:XNjLO/99
すみません、またまた正規表現でつまずいたので教えてください。

-------------------------
String mail = "mailto:info@jafrec.org?subject=title" ;

Pattern pattern = Pattern.compile(
"(([0-9a-zA-Z!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\}\\|~]+(\\.[0-9a-zA-Z!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\}\\|~]+)*)|(\"[^\"]*\"))"
+ "@[0-9a-zA-Z!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\}\\|~]+"
+ "(\\.[0-9a-zA-Z!#\\$%&'\\*\\+\\-/=\\?\\^_`\\{\\}\\|~]+)*");

Matcher m = pattern.matcher(mail);
if (m.find())
System.out.println(m.group());
-------------------------

info@jafrec.org?subject=title

-------------------------

このパターン文字列は、このサイトからもらってきて、行頭の「^」と行末の「$」を消しただけのものです。

[メールアドレスのチェックをするサンプルコード]
https://www.sejuku.net/blog/13215


要するにメールアドレスでは「?」は使用可能な文字ということですが、
subject=title という文字列を含まないちゃんとしたメールアドレスはどうやって抽出すればいいのしょうか?
0690デフォルトの名無しさん
垢版 |
2018/05/31(木) 22:20:31.29ID:k6BQnAIS
Regular Expression(正規表現) Part14 [無断転載禁止]©2ch.net
ttp://mevius.2ch.net/test/read.cgi/tech/1489511075/
0691デフォルトの名無しさん
垢版 |
2018/05/31(木) 22:33:25.49ID:VDYyuWAQ
基本を理解してれば5秒で解決できようなことも
コピペするだけで自分で考えることを完全に放棄して
「どうすればいいですか?!(ブヒッ w」って言う奴がたまに沸くけど
俺から言えることは一つ






とりあえずプログラム勉強するのやめて死ぬか肉体労働でもしてろアホ
0692デフォルトの名無しさん
垢版 |
2018/06/01(金) 02:17:30.69ID:G+EweiBr
>>689
パターンから?だけ抜けば良いじゃん
0693デフォルトの名無しさん
垢版 |
2018/06/01(金) 05:58:16.47ID:dO01bT30
>>691
わからないなら黙ってろ
0694デフォルトの名無しさん
垢版 |
2018/06/01(金) 06:14:23.56ID:dO01bT30
String mail = "mailto:info@jafrec.org?subject=title";
int start = "mailto:".length();
int end = mail.lastIndexOf("?subject=");
System.out.println(mail.substring(start, end));
0695デフォルトの名無しさん
垢版 |
2018/06/01(金) 07:16:54.69ID:mz3IXUUz
自分は中括弧なしの一行のif文よく使うのだけど、
別の事情でたまたまそれ全部取ったら動作早くなった気がするのだけど気のせいでしょうか?
0697デフォルトの名無しさん
垢版 |
2018/06/01(金) 09:17:42.84ID:ofHoYooM
>694 ←なんだこれw
馬鹿は回答側に回るなって何度言えばわかるんだ?
入門書読み終わるまでROMってるか釣りじゃなかったら
思考能力が小学生以下だからとっとと死ぬか肉体労働でもやってろ低能
0698デフォルトの名無しさん
垢版 |
2018/06/01(金) 09:26:06.00ID:2cZeSctd
馬鹿と言うやつが馬鹿
0700デフォルトの名無しさん
垢版 |
2018/06/01(金) 10:02:50.20ID:ofHoYooM
正規表現で何してるかわかれば
上の方でアホっぽい奴が書いてるように最後の行の「?」と「*」消せば
?に当たった時点で抽出されなくなる
それを>694みたいに固定文字列検索してsubstringするような馬鹿は馬鹿と言われて当然
こんなコピペだけして何も考えてなく応用力0の奴に回答すると延々と質問してくるし回答してやる価値もないし
?残してそれ以降の文字だけ消したいとかこの?が何を意味してるかもわかってないし
そもそもこんなことしたい奴なんてwebクローリングとかして怪しいことする気満々の糞業者だし
とりあえず死ねって感じ
0701デフォルトの名無しさん
垢版 |
2018/06/01(金) 10:08:29.54ID:2cZeSctd
  ∧_∧  / ̄ ̄ ̄ ̄ ̄
 ( ´∀`)< オマエモナー
 (     )  \_____
 │ │ │
 (__)___)
0703デフォルトの名無しさん
垢版 |
2018/06/01(金) 11:14:33.56ID:ofHoYooM
まぁ勉強初めて2日目とかの初心者なんだろうけど
よくそんなゴミコード晒せるな
ビックリするわ
0708デフォルトの名無しさん
垢版 |
2018/06/01(金) 12:28:16.05ID:taBhBTCk
*消したらドットが複数ある時どうするんだ
そもそもドメイン名にハテナ無理じゃね
消すのは最後だけじゃない
でもまあ土方にしては回答頑張ったんじゃねえの
0711デフォルトの名無しさん
垢版 |
2018/06/01(金) 12:38:31.85ID:uCsHgk1n
ちょっと微分買ってきてと100円渡される。
0712デフォルトの名無しさん
垢版 |
2018/06/01(金) 12:40:04.37ID:SFIgpc6j
微分はじめました
0714デフォルトの名無しさん
垢版 |
2018/06/01(金) 13:07:10.93ID:ofHoYooM
正規表現もわからずゴミコードしか書けない池沼が6連投www

>*消したらドットが複数ある時どうするんだ
書いてある正規表現も理解できない馬鹿なんだから無理して書き込むなって糞馬鹿w

こんな奴が回答してたりするからゴミスレすぎる
馬鹿はプログラムやるなってwマジでw
0718デフォルトの名無しさん
垢版 |
2018/06/01(金) 13:33:50.10ID:ofHoYooM
昔もこのスレはこんなに馬鹿が溢れてなかったんだけど
今はすごいね
まともな奴はみんなどっか他所に行ったみたいだな
馬鹿しかいねぇw
0721デフォルトの名無しさん
垢版 |
2018/06/01(金) 13:37:28.84ID:taBhBTCk
最後の?と*消すなんてそんないい加減な修正したら
現場では速攻微分だから
0722デフォルトの名無しさん
垢版 |
2018/06/01(金) 14:16:21.34ID:yWtLbZRH
public class sure{
public static void main(String[] args){
System.out.println("ここは初心者の質問が許されているスレですか?");
}
}
0723デフォルトの名無しさん
垢版 |
2018/06/01(金) 14:17:29.44ID:aj1Deil2
>>722
public class sure{
public static void main(String[] args){
System.out.println("はい。");
}
}
0724デフォルトの名無しさん
垢版 |
2018/06/01(金) 16:48:06.33ID:yWtLbZRH
String[] come=
{"コ","メ","ン","ト","が","辛","す","ぎ","て",
"質","問","し","づ","ら","い","で","す","わ","(汗"};

for(String c:come){
System.out.println(c);
}
0727デフォルトの名無しさん
垢版 |
2018/06/01(金) 19:15:55.33ID:dhEPwp5e
皆さんレスどうもありがとうございました。こんな感じになりました。

if (m.find()) {
int index = m.group().indexOf("?subject=");
if (index > -1)
System.out.println(m.group(0).substring(0, index)) ;

----------------

String mail = "mailto:info@?subject=.org?subject=title" ;

これだとちゃんとしたアドレスを抽出できませんが、こんなドメインなどほとんどないだろうってことにしときます。
実際のところ「?」を含むドメインにもほとんどお目にかからないのでパターン文字列から「?」を取り除いても実用上ほとんど問題ないって気がします。

あと余談になりますが、

<a href = "mailto:info@?subject=.org?subject=title">連絡先</a>

このリンクをクリックすると、メーラーが立ち上がりますが、宛先は「info@;」、件名が「.org?subject=title」になりました。
■ このスレッドは過去ログ倉庫に格納されています

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