- 1 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:25:11.04 ID:zFksT2Ki.net]
- Java初心者のためのスレッドです。
※前スレ Java入門・初心者質問スレ echo.2ch.net/test/read.cgi/tech/1462997913/
- 552 名前:デフォルトの名無しさん [2017/02/19(日) 02:45:04.36 ID:DY9UFKDi.net]
- え?トランザクション使えないDBなんてあるの?
てか、>>539のように1行に収めて渡したところでその処理の間に別プロセスで テーブル更新されちゃったら整合性保てなくなるんじゃない?一塊のSQL文 実行中にテーブルにロックが掛かるならなんとかなるかも知れないが、 その場合は関連するテーブル全てにロックが掛からないとうまくいかんよね。
- 553 名前:デフォルトの名無しさん [2017/02/19(日) 06:47:59.48 ID:zNGfBeXW.net]
- だったらプロセス側で排他処理すればいいだろうがハゲ
- 554 名前:デフォルトの名無しさん mailto:sage [2017/02/19(日) 09:12:45.07 ID:v7e804cy.net]
- createStatement + executeQuery/executeUpdate
で足りるんじゃないかしら
- 555 名前:デフォルトの名無しさん mailto:sage [2017/02/19(日) 09:16:23.89 ID:TZ/mXSM2.net]
- ラウンドトリップ減らしたいだけだろ
- 556 名前:デフォルトの名無しさん mailto:sage [2017/02/19(日) 18:04:50.98 ID:Qvw0x0uQ.net]
- すみません質問です。
ビット数のカウント(x 〉〉〉y) などはアプリ開発などには必要でしょうか? なんとなくしか理解できません 〈〈は左へシフトというのはわかっています
- 557 名前:デフォルトの名無しさん [2017/02/19(日) 19:34:47.71 ID:HYCGJNag.net]
- >>544
そんなのほぼ使いません。
- 558 名前:デフォルトの名無しさん mailto:sage [2017/02/19(日) 21:18:46.80 ID:v7e804cy.net]
- その辺のビット操作が真に必要とされたのは20年以上前なのよね
- 559 名前:デフォルトの名無しさん mailto:sage [2017/02/19(日) 22:05:23.18 ID:s+kTIFf7.net]
- 組み込みでは今でも普通に使われとるよ
- 560 名前:デフォルトの名無しさん mailto:sage [2017/02/19(日) 22:32:11.70 ID:Oqs2ldsH.net]
- 返事ありがとうございます
次に進もうと思います
- 561 名前:デフォルトの名無しさん [2017/02/19(日) 22:53:51.01 ID:1yj5fQr2.net]
- >>548
あまり細かいところを気にする必要はない。実際に何かを作りながら勉強すれば、いることといらないことの分別はつく。
- 562 名前:デフォルトの名無しさん [2017/02/19(日) 22:55:36.11 ID:jNG/kyqP.net]
- >>547
しょぼいコンピュータならそうだろうけどな。Java MEだろ?ここは初心者だからJava SEを基準に話すべき。
- 563 名前:デフォルトの名無しさん mailto:sage [2017/02/19(日) 23:00:47.92 ID:Oqs2ldsH.net]
- >>549
ありがとうございます そういう感じで頑張ります
- 564 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 00:02:27.42 ID:TCuyHNDs.net]
- 何の役に立つのかを意識しながら学ぶのはとても大事
- 565 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 00:06:57.35 ID:vUt0nDfp.net]
- 縁の無い世界と思ってるかもしれないけど、スマホの中がいきなりそうだしな
- 566 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 00:22:21.97 ID:AKZL9lpl.net]
- メモリ管理までなってくると文系SE()には全く理解できませぬ
- 567 名前:デフォルトの名無しさん [2017/02/20(月) 00:52:14.65 ID:VpIGtQew.net]
- >>541
ネットワーク経由での他の全然関係ないマシンの全然違うOSからのアクセスでの更新はどうする?
- 568 名前:デフォルトの名無しさん [2017/02/20(月) 01:17:23.16 ID:VpIGtQew.net]
- >>544
必要になることは今では少ないかも知れない。 ただ、作るプログラムによっては必要になると思う。主にシステム寄りなやつとかハードウェア寄りのプログラムとか。 ネットワークで送ってくるデータがバイナリの塊でその中にビット単位でデータが分かれて入ってくるなんてのもあるかも知れない。 まあ、そういうデータ構造までひっくるめて全て自分で作れるならそういう風に作らなければいいだけではあるけどね。 仕事で誰かが決めた使用通りに作らねばならない場合とかは避けて通れない事もある。
- 569 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 02:10:44.89 ID:5JVok8IP.net]
- >>556
詳しくありがとうございます システムズ寄りのものも作りたいなと思っているので いつになるかわかりませんが 頭にいれておきます ありがとうございます
- 570 名前:デフォルトの名無しさん [2017/02/20(月) 12:21:17.90 ID:MFQClxBE.net]
- >>554
おまえJavaスレで何を言ってるのか?
- 571 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 22:47:33.17 ID:e3MnNv+f.net]
- スッキリわかるjava、第6章〜はdokojava使わないの?
コマンドプロンプトとメモ帳でやるの?
- 572 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 22:50:14.21 ID:ZSqAwaEi.net]
- >>559
慣れるためにも素直にeclipse使っとき
- 573 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 23:03:34.23 ID:e3MnNv+f.net]
- >>560
ありがとう! 今環境変数とか見てみたけど導入は出来てる ただオブジェクト指向の開発がメモ帳に書く前提なのか分からへん…
- 574 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 23:09:25.97 ID:3NHWbqj1.net]
- いい加減開発環境にeclipse使うのやめようぜ
少なくとも今から開発環境作るなら今更eclipse勧めるのは無いと思うよ
- 575 名前:デフォルトの名無しさん [2017/02/20(月) 23:23:33.96 ID:e0RSzmB4.net]
- >>561
IDEエディタは好みのものを使えばいいと思うが・・・ その前に、 スッキリわかるjava?とかいうのを読んで理解する時は 最低限の環境・・・つまり メモ帳で書いて、コマンドラインにてjavac実行でコンパイル→実行をお勧めします。 更に、外部のライブラリを参照する事によるコンパイルにも慣れてから好みのIDEを選びましょう。 (理解するというよりも、体感せよ。) 外部ライブラリ・・・例えばApache Commonsがいいかな?詳しくは調べよう。 https://commons.apache.org/ あと、IDEじゃないけど、antも同様。 いきなり、例えばeclipseで覚えようとすると、eclipse以外で Javaを書いたり構築したりする事が難しくなる。 何を書いているか分からない?いずれ分かるでしょう・・・。 ようこそ、Javaへwwwww ・・・でもJavaを今から覚えるのか?レガシーな言語ですよ?
- 576 名前:デフォルトの名無しさん mailto:sage [2017/02/20(月) 23:57:57.40 ID:srR/js2e.net]
- >>563
プログラミング言語の主力ってどうなの? Ruby勧められたけど基本情報処理技術者で使えないから仕方なくjavaにしたんだよね…
- 577 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 00:12:18.39 ID:ehbuiFrf.net]
- どこで仕事したいかによる
公共系とか金融系はcobolとかJava WebサービスだとHTML5+Javascript(Node.js)とかRubyとかPHPとか 組み込みやパッケージはCとかC++ WindowsクライアントはC#とかVB.NETとか
- 578 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 00:19:13.85 ID:Lp7KKl6R.net]
- 今勉強するなこれ!って感じのが無いんだよな
RubyはRailsとセット覚える事前提だけどほぼwebサービスのみだし pythonは未だに2系と3系で揉めてるし
- 579 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 00:21:33.83 ID:ET4KfYGt.net]
- 戦闘機の仕事してた奴はAda使ってたな
- 580 名前:スッキリ厨 [2017/02/21(火) 00:25:32.83 ID:jHRGu1Ca.net]
- YouTubeにある、T Umezawa の動画、2つの言語で、内容は同じだけど、
Javaは秀丸で、C#はメモ帳で書いてる T Umezawa 【Java】ゲームプログラミング超入門 メモ帳でC#超入門 ただし、C#の方は、少し更新が止まっている 「スッキリわかる Java入門」を3回読んで、オブジェクト指向をみっちり学んだら、 「たのしいRuby 第5版、2016」も3回読むといい。 クロージャ・関数型への道が、一気に開けるから、Java8のStreamも理解しやすい。 他のスクリプト言語も理解しやすくなるから、応用力がつく
- 581 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 01:24:59.58 ID:Cq8abdSM.net]
- >>563
antって、、、未だにant使ってるならレガシーってなるでしょ ビルドはgradleがいいけどmavenのサンプルもまだ多いので両方使える方が望ましい eclipseでgradle使うならplugin入れたりと手間だし、機能的な面も考えればIDE はIntellij 一択でしょ eclipseは自分好みのplugin入れて設定して苦労して環境構築したから惰性で使い続けるものになってる ま、ある意味ユーザ離れが少ないのかも知れないけど
- 582 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 07:17:15.03 ID:N4GHdPkB.net]
- 趣味でやるならHaskellで関数型に慣れオブジェクト指向という考え方を一切合切捨て去ってからのJavaScript
最初からJavaScriptやっちゃうとどうしてもオブジェクト指向に引っ張られるからね Java8で関数型の一部が取り入れられたとはいえクラスベースのJavaでは永遠に関数型プログラミングはできない 仕事でやるなら何でもええやろ
- 583 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 07:31:26.01 ID:HBiYBxQP.net]
- 出先でjavaりたいときの環境についておすすめはどれ?
@winタブ+キーボードorモバイルノート Adokojavaみたいなオンライン Bその他の泥アプリ(存在するのかは知らない)
- 584 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 07:53:02.62 ID:YdijoGpr.net]
- >>571
@以外ない 環境にこだわれ
- 585 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 10:04:43.04 ID:048NMDMM.net]
- 自分の環境ぐらい自分で考えろよ
- 586 名前:デフォルトの名無しさん [2017/02/21(火) 10:17:52.30 ID:0qmR7+9d.net]
- >>570
なんでそんなに関数型を勧める?
- 587 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 11:12:09.27 ID:9RGM2Zbi.net]
- >>574
速度と安全性の両立が現状一番上手くいってると個人的に思ってるから 言っとくけど俺はオブジェクト指向は好きだぞ Scalaも割と好き つーかアラン・ケイリスペクトだ メッセージパッシングはロマン ビャーネなんたらは知らん ハウルの動く城に帰れ ただ自分が将来的にどういうスタイルでプログラミングするかは別として関数型がどういうものかは知っておくべきだと思う 純粋な手続き型と、純粋なオブジェクト指向型と、純粋な関数型を学べば自然と自分のスタイルも決まるはず
- 588 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 12:32:51.26 ID:5oYsvnfy.net]
- eclipseの設定色々聞きたいのですが
i.imgur.com/m524H6u.png スペースの可視性を調整してたら 文字と空白表示がダブって表示されているのですが これはどこを弄れば治るのでしょうか……?
- 589 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 12:48:06.99 ID:kvQU90/N.net]
- 純粋な手続き…Cやった、わかる
純粋なOO…Smalltalkやった、わからん 純粋な関数型…Haskellやった、わからん Javascriptも純粋なJavascriptはだめだろう やるならTypescriptかelmかpurescriptあたり?
- 590 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 16:34:11.30 ID:HBiYBxQP.net]
- >>572
PCがマストかー なんとかエイスースから適当に見繕うしかないなー ところで参照型のキャストについて Animal a = new Dog(); ((Dog)a).eat(); この二重括弧の外側の()はどういうルールに基づくものなんだろ?
- 591 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 16:43:50.64 ID:NkXz995W.net]
- eatがDogにしかないんじゃないか
Dog d = (Dog)a; d.eat(); とダウンキャストしている思えばいい
- 592 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 16:50:43.69 ID:HBiYBxQP.net]
- >>579
うん、キャストはわかるんだけど (Dog)a.eat(); じゃなくて ((Dog)a).eat(); という書き方になる理由が分からないんだよね これは >>579 の記述を省略して纏めるならこう書きなさいというルールってことなんかな
- 593 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 17:04:59.11 ID:6AK/ye3y.net]
- >>578
キャスト演算子 (Type) Expression Expressionの結果をTypeにキャストする なので、(Dog)a.eat() は、a.eat()の結果(戻り値)をDogにキャストする aがeat()を持たないclassだったりeat()の戻り値がDogにキャストできないclassの場合はコンパイルエラー
- 594 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 17:09:28.70 ID:6AK/ye3y.net]
- 途中で送信しちゃった
((Dog)a).eat()は、(Dog)aを数式演算子としての()で括って最優先で演算し、その結果(戻り値)のDogに定義されたeat()を呼び出してる
- 595 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 17:10:17.15 ID:rz+9lhUG.net]
- オブジェクト指向が難しすぎる..
スッキリjava読んでる時は理解できているんですけど いざ自分で練習すると全然だめです.. ひたすら書いて覚えるしかないですか? 皆さんどういう覚え方をしたか教えてください
- 596 名前:576 mailto:sage [2017/02/21(火) 17:35:12.92 ID:ZVBWfsdv.net]
- 解決はしてないですが、
どうやらeclipse4.6でメイリオを選択すると 空白のフォントがおかしくなるようでした 諦めて明朝でやっていきます (何種類か試したところ、いくつかのフォントで同様の現象が発生するみたいです) メイリオを使わせないという意思でもあるのでじょうか
- 597 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 17:39:53.29 ID:6AK/ye3y.net]
- >>584
そもそも等幅フォントじゃない時点で微妙
- 598 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 17:40:39.23 ID:gG4Ydnc/.net]
- >>580
演算子の優先順位は(Dog)よりa.eat()の方が高いみたいよ 括弧が無いとa.eat()が先に処理されるんじゃない?
- 599 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 17:40:49.20 ID:HBiYBxQP.net]
- >>582
数式演算子!まさか数式演算子とは… つくづく勉強してて思うけどプログラムは禁止されてるルール以外はあらゆる文法を組み合わせて何でもかけちゃうんだな そして禁止されてるルールが禁止されてる理由は素人には想像もつかなくて知ってなきゃ分からない そこ
- 600 名前:そうやっていいの?ってのとそれ駄目だったの?ってのが多すぎるよ… []
- [ここ壊れてます]
- 601 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 17:44:04.41 ID:HBiYBxQP.net]
- >>586
むづかしいなぁ これ例題だから何でこう使ってるんだろうって思うけど自分で組んでたらずっと何で(Dog)a.eat();で動かないんだ! ってなってると思うわ まぁ頭が固いんだろうなぁ
- 602 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 17:45:44.78 ID:TggSaCtx.net]
- チラ裏
- 603 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 17:56:29.10 ID:6AK/ye3y.net]
- >>587
ごめんよ、数式じゃなくて、式
- 604 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 17:58:21.98 ID:ZVBWfsdv.net]
- >>585
等幅フォントじゃないと表示がずれるんですね 探したらメイリオを等幅にするバッチファイル見つけて 試したら上手く行きました、これで何とかなりそうです
- 605 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 18:01:17.06 ID:HBiYBxQP.net]
- >>590
ちょっと演算子の名前は虚覚えだけど要は (a + b)* c この()と同じってことだよね?
- 606 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 18:05:53.01 ID:6AK/ye3y.net]
- >>591
おおぅ、そこからか プログラミング用途のテキストエディタや統合開発環境はほぼ全て等幅フォント前提で考えられてる プログラミング向けのフォントもそこそこあるから自分に向いたのを探すといいよ 例えば ・ Source han code JP ・ Ricty Diminoshed ・ Myrica ・ Rounded M+
- 607 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 18:06:45.10 ID:6AK/ye3y.net]
- >>592
同じ 演算の優先度を上げるカッコ
- 608 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 18:20:21.93 ID:HBiYBxQP.net]
- >>594
プログラムは全部式なんだから使えて当然、か 丁寧にありがとう!
- 609 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 18:40:32.24 ID:2UxBH0C2.net]
- >>595
> (Dog)a.eat(); じゃなくて > ((Dog)a).eat(); という書き方になる理由が分からないんだよね 前者はa.eat()の結果がDog型に (Dog)(a.eat()) と同じ 後者はaがDog型に
- 610 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 19:13:38.98 ID:vSefmos+.net]
- 基本情報処理技術者のjava解ける気しねー(´;ω;`)
2ヶ月で間に合うのかな(泣)
- 611 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 19:43:43.83 ID:OZpBqcTf.net]
- ファイル名をソートしたいんですが
file1.txt file2.txt file10.txt という順番にソートするにはどうしたらいいでしょうか? いわゆるエクスプローラでソートしたときの順番にしたいです。
- 612 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 19:49:51.39 ID:HBiYBxQP.net]
- 最近実践編で読んだんでチラ裏させてくれ
まずいずれかのlistクラスに格納してファイルの自然順序を何にするかをオーバーライドで決めてsort()メソッドで並べ替える 細かいことは知らない
- 613 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 20:16:46.32 ID:6AK/ye3y.net]
- >>598
java natural order comparator あたりでググるよろし
- 614 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 21:19:57.79 ID:vSefmos+.net]
- スッキリわかるjavaのオブジェクト指向に入ってから、ソースコードどこに保存して書いてるの?
(´・ω・`)
- 615 名前:デフォルトの名無しさん mailto:sage [2017/02/21(火) 21:28:42.72 ID:vSefmos+.net]
- 自己解決しました…
- 616 名前:デフォルトの名無しさん [2017/02/21(火) 22:07:53.68 ID:sSbzoxvW.net]
- お、おう
- 617 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 04:30:51.90 ID:mKCy10Km.net]
- bronzeでの模試正答率71%…
早く受かって就職したいがこれはギリギリすぎる…
- 618 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 09:35:33.12 ID:pHogyGSV.net]
- そういうのは自分のブログにでも書けよ
- 619 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 10:12:35.66 ID:PcTYf6F1.net]
- それね
質問スレだから
- 620 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 10:45:25.66 ID:FbwNgaCq.net]
- >>605
笑ったわ
- 621 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 16:49:50.74 ID:FbwNgaCq.net]
- スッキリわかるJavaの入門終えたら実践にいくのが普通かな?
みんなどの参考書で勉強してるの? (´・ω・`)
- 622 名前:デフォルトの名無しさん mailto:sage [2017/02/22(水) 20:46:06.49 ID:nXsdQesP.net]
- ブロンズ71%で受かって、4日後にシルバー受けたら92%だった。
一番の難関はブロンズの制限時間だと思ったわ。
- 623 名前:デフォルトの名無しさん [2017/02/22(水) 22:30:14.37 ID:2lSlbJfm.net]
- >>598
やっつけでいいなら 文字数でソートしてから名前でソート
- 624 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 00:05:19.73 ID:y4dzqAyu.net]
- >>610
winapi呼び出そうかなあ
- 625 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 07:44:10.67 ID:DLcSnxYh.net]
- CUIのローグライク作りたいんですが矢印キーはどうやって入力するんですか?
- 626 名前:デフォルトの名無しさん [2017/02/23(木) 07:45:19.23 ID:Ox0/qNEa.net]
- >>609
オラクル社の試験は問題セットの当たりはずれがあるんだよ。 簡単なときもあれば難しいのにあたることもある。
- 627 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 18:12:23.40 ID:H7zaoCok.net]
- 開発で変数とかオブジェクトにstatic使ったりしますか?
- 628 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 18:22:21.90 ID:nluhxzeP.net]
- >>608
俺は実践編に行きました。 でも結構難しいです。 入門編のようにさくさく進みません。
- 629 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 18:31:31.44 ID:OhCBVOHT.net]
- ある問題で継承においてprivateな変数が引き継げない構成要素と書かれてるんですが
これは継承できないのが正しいんですか? それとも継承はしてるけど参照できないのが正しいんですか? メンバ変数は全て引き継ぐって書いてあるから矛盾してるっぽい気がするんですが >>615 実践編はこんなAPIがあるんだってのを眺めてあとは実際試さないと覚えられないですよね
- 630 名前:デフォルトの名無しさん [2017/02/23(木) 18:35:01.06 ID:YD6xHuqc.net]
- >>614
必要であれば使う。
- 631 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 20:04:14.99 ID:Q8VBCsnB.net]
- >>616
継承できるできないと可視性は何の関係もないと思うなあ 継承すると子クラスは親クラスの全てを引き継ぐ 可視不可視の話であれば、子クラスは親クラスのprivateを直接参照することはできない
- 632 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 20:08:52.68 ID:Q8VBCsnB.net]
- >>612
そもそもJavaでやる必要があるのかからスタートすべき どーしてもJavaでやりたいのならゲーム開発に向いたframeworkを探してその使い方を勉強した方が結果的に早いと思う
- 633 名前:デフォルトの名無しさん mailto:sage [2017/02/23(木) 20:25:49.59 ID:OhCBVOHT.net]
- >>618
引き継がれる構成要素はどれですかという問い方でprivateな変数は×だったので?だったのですが感覚的にはこの問題に疑問もって正解みたいで良かったです
- 634 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 22:22:04.70 ID:uD7i0hkn.net]
- 色々調べてJavaが値渡ししかできない、参照を渡してるように見えるのもCで言うポインタ渡しだという理解をしました
その上で質問なのですが、Cのconstポインタ渡しに相当するものはJavaには存在しないのでしょうか?
- 635 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 22:56:32.65 ID:KBFO5tFR.net]
- そんなものは無い
クエリメソッドだけを集めたインターフェースを作ればいいよ
- 636 名前:デフォルトの名無しさん [2017/02/24(金) 22:56:43.78 ID:D6NNX7nw.net]
- >>621
あなたのC言語なんて知りません。
- 637 名前:デフォルトの名無しさん mailto:sage [2017/02/24(金) 23:56:21.94 ID:uD7i0hkn.net]
- 質問分かり辛かったようですみません
{ Hoge hoge = new Hoge(); // (1) func(hoge); // (2) } (1)と(2)でhogeの中身が変わらない事が保証できるfuncのインタフェース定義が知りたいです
- 638 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:03:43.03 ID:5lOXUI5K.net]
- >>621
ない。しかし String クラスみたいに new して作った後は値を変えられないように作ることはできる。
- 639 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:06:47.52 ID:5lOXUI5K.net]
- >>624
インターフェースでいいのなら Hoge の方は class Hoge implements Fuga { ... } みたいにして Fuga は読み出しのみの メソッドアクセスだけ定義しておいて、func は Fuga で受け付ける(つまり func(Fuga x))ように書いておけば良い。
- 640 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:37:38.11 ID:gxYtmtwb.net]
- >>625-626
constメソッドとか無いんですね…衝撃です 読み専インタフェースを用意する方法は何ともインタフェース志向らしい解決方法ですね、これでいこうと思います ありがとうございました
- 641 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 00:55:00.78 ID:YVEx0bdt.net]
- でもfunc(Fuga x))内でif(x instanceof Hoge)((Hoge)x).setXXX(a);みたいに書けば中身変更されるよな。
- 642 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 01:55:28.61 ID:1HZAmYU3.net]
- Rubyなら、freeze でコンテナを凍結できる。
ary = [1, 2, 'A'] ary.freeze 各要素とコンテナも、凍結したいなら、 ary.map(&:freeze).freeze
- 643 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 02:16:02.95 ID:gxYtmtwb.net]
- >>628
そこまで考慮に入れるなら不変クラスで渡すようにするしか無さそうですね 自分のケースではメモリ確保の頻発を避けたいのと、割と小規模なプログラムなので読み専であることをインタフェースで示せばそこまで突飛なことは起きない(起きても把握できる)と踏んで>>626の方法で進めるつもりです
- 644 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 02:57:54.70 ID:g9oOs5Yl.net]
- そもそもその粒度で不変を求めるならC/C++ででもやればいい
- 645 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 04:19:33.68 ID:Rbn9x5fz.net]
- 流石にそんな観点で言語選択するのはちょっと…
- 646 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 08:55:36.23 ID:ArVanU7d.net]
- そこまでどうでもいいってことだろ
- 647 名前:デフォルトの名無しさん [2017/02/25(土) 14:12:07.23 ID:5lOXUI5K.net]
- >>628
それを言っちゃあおしまいよ
- 648 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 14:15:12.60 ID:ICVRa4GN.net]
- クローンを作ればいいのではないか
- 649 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 19:07:39.60 ID:ArVanU7d.net]
- immutableなクラスでもクローンでもどっちでもいいよ
- 650 名前:デフォルトの名無しさん [2017/02/25(土) 19:12:41.96 ID:Znl6xf+a.net]
- クローンつっても中で保持しているのが何かのクラスのインスタンスや配列だったらいかんよな。そこのコピー自分でなんとかしないと。
- 651 名前:デフォルトの名無しさん mailto:sage [2017/02/25(土) 21:23:55.44 ID:ArVanU7d.net]
- んなわかりきったこと書かなくてもいいだろ
- 652 名前:デフォルトの名無しさん [2017/02/25(土) 21:33:28.87 ID:R92qYa24.net]
- ここ初心者向けのスレだから書いといた方がいいのでは?
|

|