Java入門・初心者質問スレ Part.3 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/04(火) 20:41:11.59ID:y0EcmGB0
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.2
http://echo.2ch.net/test/read.cgi/tech/1478863511/
2017/04/28(金) 17:26:10.18ID:pIHGdJ8Z
>>145
汎用性の高さって意味
ScannerよりもIOStreamの方がやってる内容が低レベル(機械に近い)ので見る機会も使う機会も多いよ
147139
垢版 |
2017/04/28(金) 17:53:15.48ID:OeyLlymU
>>146
分かりました。覚えておきます。
ありがとうございます。
148デフォルトの名無しさん
垢版 |
2017/04/29(土) 15:38:04.47ID:JW7PzOlh
cvsファイルで
1 田中 りんご
3 鈴木 みかん
6 齋藤 ヨーグルト
2 根元 パン
5 根岸 サラダ
4 佐藤 ご飯

こんな感じのやつをソートしたいです。
数字の列が 配列0
名前が 配列1
食べ物系が配列2に入ってます

cvsを読み込んで数字の列を新しい配列0〜5にいれてソートして表示するとこまではできたのですが
後ろの名前と食べ物が同時にソートされません。

やり方教えてください
2017/04/29(土) 15:38:07.81ID:hP9HIxoy
JavaFXでゲーム作りたいけど全然解説してる所ない…・・・
そんなに見放されてるもんなのか
2017/04/29(土) 15:39:33.67ID:JW7PzOlh
なんどもすみません
今は
1 田中 りんご
2 鈴木 みかん
3 齋藤 ヨーグルト
4 根元 パン
5 根岸 サラダ
6 佐藤 ご飯

みたいになってます。
2017/04/29(土) 15:48:07.67ID:nyANDfpK
別々の配列じゃ連動とか複雑過ぎ。
クラス作って、クラスの配列で読込やソートすれ。
2017/04/29(土) 17:15:02.95ID:HCCTcSxI
JavatrてCでいうとこの構造体って無いんすか?
153デフォルトの名無しさん
垢版 |
2017/04/29(土) 17:16:52.09ID:6B/XobRt
>>148
インデックスをソートしちゃえばいいよ
https://paiza.io/projects/Brbmeg7M6bZOYPELm1TOMQ

データは列の集合、列は行の集合になっているけれども

テーブルのようなデータ扱うときは
データは行の集合、行は列の集合
にしたがいんじゃないかな
2017/04/29(土) 21:02:24.15ID:y1rMzUYG
そもそも構造体を拡張したのがクラスじゃないの?
2017/04/29(土) 23:13:29.81ID:nyANDfpK
C#には構造体在るけど、Javaは無い。
メソッド無いクラス作れば、事実上の構造体。
2017/04/30(日) 02:15:39.83ID:Dc5Ny+RF
Kotlinでは、年齢・名前で、ソートすると、
Alice, Kate, Dave, Tom の順になる

class Person(var age: Int, var name: String) { }

var list = mutableListOf<Person>();
list.add(Person(25, "Tom"));
list.add(Person(25, "Dave"));
list.add(Person(20, "Kate"));
list.add(Person(20, "Alice"));

val sortedList = list.sortedWith(compareBy({ it.age }, { it.name }));
sortedList.forEach{ println("${it.age} : ${it.name}"); }
2017/04/30(日) 03:12:27.12ID:Pd/tmEqA
>>150
それぞれの列を別々の配列に詰めたら行ごとの関連付けが面倒くさいから行単位で関連付けてから配列に突っ込むイメージの方が楽
具体的にはもう出てるけど各行を表すEntityクラス作って各行のデータ突っ込んだインスタンスを配列化する
2017/04/30(日) 05:33:25.51ID:0NS9QiRt
一括りのデータを扱う時はレコードというもので扱うんだよ
レコードには固定長レコードと可変長レコードがある
固定長レコードは各フィールドの長さが決まってるからランダムアクセスすることができる
対して可変長レコードはシーケンシャルアクセスしかできないという欠点がある
159デフォルトの名無しさん
垢版 |
2017/04/30(日) 05:34:31.46ID:/xQtxfzV
TreeMap 使えばいいのでは?
TreeMap<Integer, String[]> のインスタンスに put な。
160デフォルトの名無しさん
垢版 |
2017/04/30(日) 05:36:54.83ID:/xQtxfzV
あ、行ごと扱うならキーだけIntegerにして値はそのまんまStringで入れといてもできるな。
161デフォルトの名無しさん
垢版 |
2017/04/30(日) 05:50:10.68ID:/xQtxfzV
できた。ソートをTreeMapに任せてCSVの中身を何も考えずに突っ込んでる版。
https://paiza.io/projects/El4IUBlhQJydI6F0wf6YAA
2017/05/01(月) 14:58:41.66ID:F35eYYLf
return文の考え方が今一分からないです

public class Main05_11{
private static int add(int x, int y){
return x + y;
}
public static void main(String[] args){
System.out.println("10+20=" + add(10, 20));
}
}

この時ってreturn x + y;は一体どこに値を返しているのですか?
int ans = x + y
return ansであれば、値をansに返していると分かるのですが
ansなしでよく分からない所に返しているのに動いているのが分からず……
163デフォルトの名無しさん
垢版 |
2017/05/01(月) 15:07:15.65ID:UF+7Ud8a
>>162
return x + y;はx + yの値をメソッドの呼び出し元に返してる
return ans;はansの値をメソッドの呼び出し元に返してる
2017/05/01(月) 15:36:26.65ID:F35eYYLf
>>163
あ、どっちもメソッドの呼び出し元に返してるんですね
根本的に認識を間違えてたみたいです、ありがとうございます
2017/05/04(木) 03:35:25.45ID:gAUNCpWB
paizaでfor文で解ける問題をforEachで解いてみたら軽く2倍以上の時間がかかったのですが効率悪くないですか?
使い道あるんですかね
2017/05/04(木) 03:57:25.21ID:0GlJDnqX
Java随分離れたけど、forEachって何。
メソッド?
Javaのforeachって拡張for文だったはずだが。
2017/05/04(木) 04:52:18.46ID:4JL58KAn
foreachは生えてるぞ。
list.forEach(System.out::println);
とか。拡張forにしろイテレータ使うと要素数によっては処理時間に差がつくな。
2017/05/04(木) 05:13:05.21ID:0GlJDnqX
ふむふむ。
Linqっぽいの付いたのね。
その用途だとmapとかの方がらしいメソッド名なんだが。
2017/05/04(木) 08:04:03.31ID:dLBAq4Dp
この文脈だと処理時間が2倍なのか解答時間が2倍なのか
2017/05/04(木) 08:29:19.35ID:BU79yY+V
>>165
LinkedListで使ってみたら?
2017/05/04(木) 11:49:23.38ID:p0RzDybu
これだから理系は付き合いきれん
機械の方がまだ融通が利くわ
172デフォルトの名無しさん
垢版 |
2017/05/04(木) 13:22:46.77ID:qYtoqfij
>>168
mapは変換のインタフェースとして別であるよ
forEachはstreamの終端処理だよ
2017/05/04(木) 14:52:50.80ID:hrGLq/bC
今扱ってるシステムがJava7だからstreamとかラムダ式とか使わないけど
本読んでもよくわからん……
174デフォルトの名無しさん
垢版 |
2017/05/04(木) 15:36:20.32ID:EbCQq7yq
あれ?Java7にはないんだっけ?
2017/05/04(木) 15:58:11.88ID:hrGLq/bC
あれ?Java8からじゃなかったっけ?
2017/05/04(木) 16:07:35.97ID:5jh0epYp
streamなんてSQLとか扱える思考回路があれば使えるぞ
2017/05/04(木) 19:19:52.86ID:YNozeJnq
皆最初どうやってjavaを勉強したの?
自分今基本情報処理試験をあとはプログラミングのところだけっていうところまでやったのだけど、カプセル化とかモジュール分けとかオブジェクト指向とかそういう考え方があるんだってういのはわかったんだけど
いざ自分でnetbeansのjavaファイルで書こうとしたらまずはoutprintしてみようと思ったら早速エラーが出てエラー原因が何だか全く分からない
英語の基本文法みたいにそういうの知らないと厳しい気がするのだが
皆の初学の経験を教えてほしい、できれば独学でやった人から聞きたい
あと、何か作ろうって思ったときはフローチャート作った方がいい?
2017/05/04(木) 19:43:35.61ID:mK1iuMfc
>>177
俺は全て独学だがまずはC言語、C++、C#の順に勉強する
するとJavaを半日程度で理解できる下地が出来上がる
何事も基本が大事だ
基本ができてればJavaなどたやすく扱えるし基本ができてなければどんな勉強をしても身につかない
物事には順番がありそれはお手軽に身につくものではない
2017/05/04(木) 20:04:55.79ID:u6JIByox
>>177
ひたすらエラーメッセージを読む
エラーメッセージをググる
「java ○○」でググる
「java ○○とは」でググる
「java ○○ できない」でググる
「java ○○ するには」でググる
エラーメッセージで知らない英単語があれば意味をググってからもう一度読む
答えが書いてあるっぽい掲示板が英語で書かれてても臆せず読む

それだけ
2017/05/04(木) 20:07:29.10ID:mK1iuMfc
>>179
こういう知識を啄ばむような雑な勉強方法はダメ
スカスカの知識しか身につかない
2017/05/04(木) 20:11:19.54ID:TB6ujr0/
>>177
まずは入門書1冊買ってきてそれに合わせて勉強するしかない
エラーの原因とかも正しい書き方自体がまだ分かって無い状態だし

後はエラーが出たらググるか
ソースコードどっかに置くかかここに書いて聞くか
2017/05/04(木) 20:30:41.25ID:rPmF/fmP
>>180
体系的な知識を身につけるのは大前提として、エラー対処の知識が要らないわけないでしょう
少なくともJavaを勉強するために先にC#を学ぶなんてトンチンカンなことしてる暇があったらその時間でJavaの
知識を仕入れるべき
2017/05/04(木) 20:49:08.82ID:Z6thB1wv
スッキリわかるJava(という書籍)では、コンストラクタやインスタンスメソッドに
publicが付いてないのですが、基本的に付けない方針で問題無いでしょうか?
2017/05/04(木) 20:59:23.90ID:0H6f0r38
>>183
ここに詳しく書いてある
http://msugai.fc2web.com/java/permitmod.html
まともにコード書きたいならパッケージの外から呼び出せるかとか一々考えながら書くといいかな(おすすめしないが実を言うとリフレクションで呼び出せちゃうけど)
2017/05/04(木) 21:14:39.50ID:mK1iuMfc
>>182
トンチンカンだとおもっているならその程度だよ君は
C、C++を知らないプログラマなど潜りの素人だし
優れた言語設計のC#をJavaより先に学ぶメリットは大きい
そしてこれらをこなせばJavaも自然とできるようになっている
したがってJavaなんぞは後回しで良い
186デフォルトの名無しさん
垢版 |
2017/05/04(木) 21:23:59.84ID:qYtoqfij
>>185
C、C++、C#を勉強するのにかかる時間はどれくらい?
それはJavaだけを勉強したときよりも短くなるの?
2017/05/04(木) 21:32:52.04ID:mK1iuMfc
>>186
Javaだけやって同じレベルになるより遥かに早いよ
初心者から初めて金を貰っても許されるレベルになるまで1年といったところだな
Javaだけだと10年経ってもその領域に届かないクズが少なくないということはこの業界の先人たちが証明している
急がば回れというやつだ
2017/05/04(木) 21:35:23.59ID:rPmF/fmP
スッキリ君といいちょいちょい変なのが沸くスレだな
2017/05/04(木) 21:37:31.74ID:g1QlM0ze
C#を覚えるとデリゲートくれLINQくれプロパティくれ〜ってなるのでよくない
190デフォルトの名無しさん
垢版 |
2017/05/04(木) 21:40:59.09ID:qYtoqfij
>>187
C、C++、C#を勉強してJavaを勉強して到達するレベルを
基準にしたらそれはそうなると思うんだよ

Javaを勉強したいというときに
Javaだけを勉強するのとどちらが効率いいですか?ってことなので
Javaだけを基準にした場合、到達速度っていうのは変わってくるんじゃない?

いろんな言語を1年で齧って回るよりはJavaを勉強したがいんじゃないかな
191デフォルトの名無しさん
垢版 |
2017/05/04(木) 21:47:21.88ID:qYtoqfij
>>177
慣れることが大事なのでサンプルコードを書きまくるのがいいと思う

おすすめは↓の2冊

10日でおぼえるJava入門教室
https://www.amazon.co.jp/dp/4798120197/

新・明解Java入門 (明解シリーズ)
https://www.amazon.co.jp/dp/4797387602/

10日でおぼえる〜は1日目はこれみたいに区切りがいいので
やりやすいかと
192デフォルトの名無しさん
垢版 |
2017/05/04(木) 21:47:36.98ID:GHkN69u9
>>177
元々C言語は知っていて仕事でもずっと使ってた。で、C++が流行り出したので少しは学習したが仕事で本格的に使うまでには至らなかった。
その後かなり時間が経ってからJavaが流行り出して、そこで入門書読んでだいたいわかった感じ。これが20年ぐらい前の話だ。
しかし今まで仕事はずっとC言語ばかりでJavaを仕事で使うことはなかった。Linuxのサーバ側のCで作られたプログラムにずっと関わってたからだ。
2017/05/04(木) 21:51:14.78ID:4KUdSbXO
>>173
流れを感じるのじゃ
2017/05/04(木) 22:01:25.36ID:mK1iuMfc
>>190
Javaにはろくな参考書がないからね
良書の揃ってるCファミリとC#の方が早く深く学べる
そうして土台が出来上がればじゃあJavaの場合はどうなのという事を覚えるのは実に容易い
結果的にJavaだけを学ぶ場合よりも早く深くJavaを知ることができる
195デフォルトの名無しさん
垢版 |
2017/05/04(木) 22:06:59.52ID:qYtoqfij
>>194
JavaとC#は似てるから
JavaがわかるようになればC#もわかるかと

深くJavaを知るっていうのはつまりC、C++、C#を勉強して到達するレベルの話だよね
そうでなくてJavaを勉強して到達するレベルを基準にした場合
Javaを勉強するのが近道だと思わない?
196デフォルトの名無しさん
垢版 |
2017/05/04(木) 22:13:01.02ID:qYtoqfij
Javaがわかるようになればプログラムの考え方も身についてるから
CやC#もすっと入ってくるんじゃないかな
C++は人類にはまだ早いと思う
2017/05/04(木) 22:26:18.44ID:hGwzsYkf
むしろJava分かったから、C/C++のスタック/ヒープの意味(newするクラスとしないクラスの違い)や、C++特有のフレンドクラスが分かった。
順番はどうでも良いけど、Javaとは別にCは学んでおいた方がいい。
2017/05/04(木) 22:30:38.02ID:4KUdSbXO
プログラマーたるもの手続き型、オブジェクト指向型、関数型に属する言語を最低でも一つずつは習得しておかんとね
そして関数型に惚れ込んでJavaでもラムダ計算やカリー化をバシバシ使い周りに疎まれる存在となるのだ
2017/05/04(木) 22:38:29.99ID:TB6ujr0/
ruby→javaの順だけど
オブジェクト指向の理解はし易くなった感
javaだと思いっきりソースコード変わるから実感じやすい
2017/05/04(木) 22:41:33.02ID:g1QlM0ze
Javaでラムダ計算はつらいとか考えてたら気がついたらマシンにClojureが導入されてる
2017/05/04(木) 23:25:17.13ID:6JYEyXx+
int型配列の最頻値を求めるメソッドは用意されてないのでしょうか?
202デフォルトの名無しさん
垢版 |
2017/05/04(木) 23:38:27.31ID:qYtoqfij
>>201
標準ライブラリにはないけれども、大丈夫っしょ、余裕っしょ、できるっしょ
203183
垢版 |
2017/05/04(木) 23:40:33.61ID:Z6thB1wv
>>184
ありがとうございます。
よく見てみたいと思います。
2017/05/05(金) 00:12:55.97ID:YKLEnk0e
>>90
ここに書いてある

スッキリわかる Java入門 第2版、2014
まずこの本を3回読んで、オブジェクト指向をみっちりと学ぶ

この本が、すべての言語の基本。
その後、好きな言語を勉強すればいい
205183
垢版 |
2017/05/05(金) 01:17:39.61ID:GcsXwLgt
>>204
その本悪くないと思うし、あんまりケチつけたくないけど、
Scannerクラスの使い方が詳しく載ってなかった。
(インスタンス化についての記述が無い)
Randomクラスも同様。
過信は禁物か。
2017/05/05(金) 01:23:45.78ID:ecYRcjUo
>>205
その辺詳しく書いてある本を知りたいわ
Javaは本多いけど、どのレベルまで書いてあるか全然分からん
2017/05/05(金) 01:24:59.61ID:jRdxjTk1
ここからJavaのほとんどを学んだ
http://www.ne.jp/asahi/hishidama/home/tech/java/index.html
2017/05/05(金) 01:30:04.44ID:yjG7qa8A
>>205
>>31
2017/05/05(金) 02:03:32.40ID:Pxg1OvaW
>>207
こういうサイトがある時何から学べばいいの?
俺みたいなちんぷんかんぷんだと上から全て順に読んで、わからない言葉があると調べて、それでも概念的なものがよくわからなくてとりあえずわかったふりしたまま先に進んで結果あまり頭に入ってなかったっていうのがよくある失敗パターンなのだが
2017/05/05(金) 02:04:46.46ID:YKLEnk0e
「たのしいRuby」など普通の本では、オブジェクト指向の説明は、数十ページ

でも「スッキリわかる Java入門」では、250ページもある。
つまり、Javaの本と言うよりも、オブジェクト指向の本なんだよ。
そして、すべての言語の基礎になる

だから、この本は、歴史的な本と言われるわけ。
これ以前には、オブジェクト指向を勉強する、簡単な本は無かった

未だに外国では、この本が無いから、
オブジェクト指向を勉強するのに、四苦八苦している
2017/05/05(金) 02:06:41.17ID:Pxg1OvaW
あと、javaを実行する時とJSPを実行する時、それぞれpublic class{とか<%とか必要だと思うんだけどこれがないとコンピュータが処理であると認識しないっていうこと?

それとprivate class とpublic class の違いもイマイチわからぬ
Privateはそのクラス内でしか呼び出せないっていうけど、そもそも呼び出すってなんぞや
2017/05/05(金) 02:21:57.70ID:Pxg1OvaW
>>207
もう一個質問お願いします
extends 抽象クラス
その後に具体的な処理を書くって書いてあるけど抽象クラスを定義する意味ってあるの?
具体的な内容を記述するならそもそも抽象クラスを定義する必要あるのかなって
抽象クラスとかは使い方もわからないしそもそもなんでそういう考え方をするのかも理解ができない
何が言いたいかというと例えば車っていう抽象クラスがあったとしてそれは排気量を記述しなければいけない、メソッドとして走る機能を持つって事として

後で具象化クラスでextends車で抽象クラスを呼び出した時に結局排気量=なんたら、とかを記述しないといけないじゃない
だから、そういう制約的な意味しかないんじゃないかなと
プログラミングにおいて便利にするためにそういう事をしてるはずなのに、その利便性がイマイチ掴めないのだ

今は繰り返し処理とかつかって素数を求めるプログラムを作るっていう事を書いてるレベルだから、もっとゲーム的な方に行くとその意味がはっきりするのかね?
2017/05/05(金) 02:36:54.89ID:Y8XbhYBn
もうはっきり言ってしまうとプログラミング初心者がオブジェクト指向型言語なんてものから始めるべきじゃないんですよ
たかだかHelloWorldやFizzBuzzするためになんでクラスやアクセス修飾子を気にせねばならんのだと
それでもどうしてもJavaから覚えたいなら身の丈に合わない疑問は飲み込んでひたすら前に進むしかないのですよ
2017/05/05(金) 02:40:44.53ID:iQB12R96
つっても、もう世に出てる言語の殆どはLL含めオブジェクト指向言語だろ。

。。。関数型言語の世界へようこそ?
2017/05/05(金) 02:44:11.57ID:jRdxjTk1
>>212
例えばその走るって動作には、燃料と空気を供給してエンジンを作動させて動力を生み出すという過程があって、これは二輪でも四輪でも共通である(現実にはエンジンごとに違うがここでは無視)
二輪と四輪のクラスを作るとしてそのベースになる車というインターフェースを定義するとして、両方に同じことを書くことになって、それは無駄だからその部分を抽象クラスとしてまとめてしまおうという考え
間違ってたらスマソ
2017/05/05(金) 02:50:09.25ID:TDjvniVu
>>210
>未だに外国では、この本が無いから、
>オブジェクト指向を勉強するのに、四苦八苦している

それはないww
そこまで書くとステマかと思うわ
2017/05/05(金) 02:54:03.98ID:Pxg1OvaW
>>212
そういう前提があるっていう事でしょ?でも実際処理で車のエンジンの仕組みは重要じゃなくてどのようにそれらの車が動くかが重要になるのじゃない?
マニュアル車ならクラッチ操作、オートマならレンジチェンジ(でいいんだっけ)などの具体的な操作を個々に記述して行くと思うんだけど共通の仕組みそのものを定義する事は便利さには繋がっていないんじゃないかなって
確かに車はエンジンがないと動かないけど、プログラム上では(ってかユーザーにとっては)エンジンがあるかないかなんて関係が無いんじゃないの?
定義しないといけないっていう具体的な例があったら教えて欲しい
2017/05/05(金) 02:59:46.55ID:Pxg1OvaW
窓はガラスでできている。そのガラスを使って窓を開け作った上でこっちに押したら閉まる、こっちに押したら開くなどのことが出来るようになる
だからまずはガラスでできているという共通前提定義が必要となる。それはわかる
でも実際プログラム上でそれがどう有効なのかがわからない
人間クラスに名前はまず名前、年齢が必要、その上で個々の動作をして行くわけだけど定義してそのクラスを呼び出しても結局年齢とかは手書きで書いて行くわけじゃん

例えばどういう時にオブジェクト指向を使ってるのかとかあったら教えて欲しい、ゲームとかでもいいので
2017/05/05(金) 03:13:17.49ID:jRdxjTk1
確かに個々の動作を書くのには抽象クラスは全く役に立たないよ、ただプログラムを動かすにはその外から見て重要ではない部分が必要なわけで、その部分が共通だとコピペするのは簡単だが後々の修正が大変、だからまとめておくと
2017/05/05(金) 03:20:10.72ID:Pxg1OvaW
>>219
具体的にプログラムの世界だと何をまとめるの?実行するための記述以外にプログラムそのものを動かすために必要なものの具体例がわからないのだが
2017/05/05(金) 03:37:46.29ID:jRdxjTk1
JavaにはListって可変長の配列を作るためのインターフェースがあるけど
http://docs.oracle.com/javase/jp/7/api/java/util/List.html
これだけのメソッドを実装しろと要求してくる
そしてこれを使って中身の違う実装を作るときに全部を何度も実装するのは骨が折れる作業だよね
そこでAll系のメソッド等他のメソッド呼び出しで書けるものを抽象クラスに書いておけば実際に実装するときに書かなくてよくなる(効率化したいとかだと書いてもよい)
折角クラスライブラリのソースあるんだしAbstractList辺りのソース見てみるといいよ
2017/05/05(金) 03:43:35.59ID:jRdxjTk1
分かりにくい説明しかできなくてすまんの、多分現実の物体で考えずにプログラムとして直接考えるのが一番の近道じゃないかな
2017/05/05(金) 03:50:24.78ID:TDjvniVu
>>220
たとえば共通の手順とか

テンプレートメソッドと呼ばれるパターンの例(HeadFirstデザインパターンより)
http://i.imgur.com/4m0ZWv7.png
コーヒーでも紅茶でも抽象化した手順は同じたし
お湯沸かしたりカップに注ぐ部分は全く同じ

今はJavaでも抽象クラスとは違う方法でも実装できるけど
こういう基礎の理解は必要
2017/05/05(金) 04:16:15.80ID:JPrvtXpw
ゲームのマップを作ろうと考えています。
マップ画像を表示させ、マップ上の任意の部屋をクリックすると、その場所の名前(ロビー、キッチン、ベッドルーム、など)を表示するようにしたいです。
この処理を実装するには、どのような方法がスマートでしょうか?
各部屋の形は四角形ではなく、円や三角形など複雑な形をしているので、単純に四隅の座標を部屋名とともに配列に格納しておき、クリックした座標を内部に含むものをfor文で回して探索する・・・という方法は難しいです。
どうかお力添えください。
2017/05/05(金) 05:14:23.88ID:YKLEnk0e
ゲームは、オブジェクト指向の最高峰

キャラクタークラスから、勇者・魔法使いなどを、
モンスタークラスから、スライム・ゾンビなどを派生させる

is-a, has-a とか勉強すれば?
消防車は車の一種。is-a。継承
車はハンドルを持っている。has-a。部品

「スッキリわかる Java入門」では、オブジェクト指向の説明が、250ページもある。
ここ20年間、世界中の中年のCプログラマーが、皆、C++へ移行できずに撃沈している

オブジェクト指向がどれぐらい難しいか、分かるでしょ?
だから、スッキリが日本中に、革命を起こした
2017/05/05(金) 05:22:28.10ID:YKLEnk0e
>>224
java.awt.Shape interfaceで定義される、containsメソッドは、
指定された点が、図形の境界の内側にあるか否かを判定する

「java 図形 内側」などで検索!
2017/05/05(金) 12:17:52.64ID:Oxs8iPV6
超単純にやるなら
・種別(矩形、三角形、円)
・パラメータ(最大4つ)
 頂点の絶対座標もしくは円の中心座標&半径

とやって判定時などに種別に応じて処理を分ける

それと一つの部屋?を分割して単純な図形の組み合わせにする
回転が必要なら矩形を2つの三角形に変える

スクロールとか必要ならもっと面倒だけど
プロパティかパラメータを増やせばなんとかなるべ
2017/05/05(金) 12:24:15.13ID:jsHCnOkz
Javaプログラマはオブジェクト指向をよくわかってない人が多い
C#プログラマはみんなよくわかってる
C#マイクロソフト公式の参考書など良書が揃っているからね
Javaはろくな本がない
初心者をごまかしてわかった気にさせるような本ばかりだ
2017/05/05(金) 12:42:33.54ID:8b9qfJY2
それってあなたの感想ですよね?
なんかそういうデータあるんですか?
2017/05/05(金) 12:50:52.07ID:XP+Q0OKG
>>229
会社にあります
2017/05/05(金) 12:55:46.33ID:Dvx8ftQc
いちいち部屋分割して図形の頂点座標測ったりとか種別とかやってられないでしょ
元のマップとは別に、それぞれ部屋ごとに色で塗りつぶしたマップを用意して裏で読み込ませといて、クリックした地点のカラーコード読んで色に対応した部屋名を取り出す
ってのを考えたんだけどどうよ
2017/05/05(金) 13:14:01.06ID:8b9qfJY2
>>230
それ「宿題家に忘れました」と同レベルじゃないですかー
2017/05/05(金) 13:22:43.96ID:XP+Q0OKG
>>232
バカなの?
宿題と同じ感覚で会社のデータ持ち出しちゃうんだ君は
2017/05/05(金) 13:28:33.31ID:8b9qfJY2
>>233
説得力が皆無だからそれ以上非論理的な話をするのはやめとけと言っているだけですよ
データを他人に見せられない主張に意味などない
まぁ所詮2ちゃんだし、それでもわめきたければ好きにすれば?
2017/05/05(金) 13:29:35.85ID:Up1lvbHo
まぁポンコツな会社にはポンコツが集まるって言われてるし
2017/05/05(金) 13:41:46.76ID:XP+Q0OKG
>>234
そもそも君を説得する必要もないしね
事実は事実として変わらないことだから君がどう思おうと何の影響もない
2017/05/05(金) 13:49:41.18ID:n4hNDFR+
会社にありますはガイジすぎる
そんなん通るならC#プログラマーは全員屑!証拠は俺の会社にある!
2017/05/05(金) 14:21:00.68ID:XP+Q0OKG
というか俺の会社じゃなくてもどの会社にでもある
過去の案件を分析すれば答えは出るよ
Javaがいかに失敗を生み出してきたか数字ではっきりと出てくる
GW明けにでも調べてみるといい
2017/05/05(金) 14:28:17.47ID:xfO5LNpr
今から勉強しようとしてる人向けの話じゃなかったのか?
今から勉強しようとしてるのなんて学生に決まってるんだから会社の資料は見れないでしょ……
まさか社会人にもなってやっとJava勉強しようとしてる意識低い系の話なのか?
2017/05/05(金) 14:30:45.16ID:EB13pOeh
去年調べた結果だと、Javaの方がC#より三倍生産性が良かったよ。
今年は知らんが、多分同じじゃない?
2017/05/05(金) 14:35:53.90ID:XP+Q0OKG
>>239
Javaはそういう意識低い人ばかり
2017/05/05(金) 16:17:42.92ID:Pxg1OvaW
public class void String NewClass() {

System.out,.print ("hello");

}

実行しようとしてもエラーが出る 
identifierがありません。
全く持って意味が分からない…
2017/05/05(金) 16:28:41.11ID:8b9qfJY2
おまじないがおかしいよ
ますおまじないをそらで書けるようになってから応用しなさい
あとoutの後ろの,はいらん
2017/05/05(金) 16:40:39.14ID:Pxg1OvaW
>>242に関しては自己解決しました。
もう一つ質問だけどとりあえずネット上にあるサンプルを使ってコードを書きまくってみようと思ってるのだけどなにかコードを記述したいって思ったときに
public static void とかprivateとかいろいろあると思うんだけど何を基準に選んだんラいいの?
あと、いまやっとこさこれが書けたんだけどこの言葉から記号一つ一つの意味まで全部把握しておいた方がいい?
public class NewClass{
public static void main(String args[])
{
System.out.print("表示できるか??");
}


}

main このmainっていうのはクラス名?あとどこかでclassは一つのファイルに一つまでしか書けないって書いてあったけどこれにはclassが入ってないけど例えばオブジェクト指向で新しいクラスを作りたいってなった時に
classはファイル名と一緒でなければいけないって書いてあったのだけど、どうやって考えたらいいの?
2017/05/05(金) 16:48:22.02ID:Pxg1OvaW
多重に質問申し訳ない
言葉を覚えての色々な事を質問して回る子供だと思って聞いてほしい
javaの構文を覚えるときは皆一つの熟語として覚えてる?
例えばこういうときは
public static void main(String args[]){  を使うんだ、みたいなものを一つひとつの意味を考えないで丸ごと覚えているイメージ?
あとついでにもう一つ頼む、args[]の[]は配列を表すものだったと思うんだけどよく見るこのコードはなんで配列を指定しているの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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