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

■ このスレッドは過去ログ倉庫に格納されています
2018/06/07(木) 20:17:08.87ID:N8MsK2gr0
Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.7
http://mevius.5ch.net/test/read.cgi/tech/1515549964/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
2018/07/08(日) 09:17:24.51ID:Lc8bP1H30
>>79
>>80
ありがとうございます!
公式サイトも推奨書籍も参考にします!
82デフォルトの名無しさん (ワッチョイ 859f-UVFs [118.152.82.239])
垢版 |
2018/07/08(日) 22:32:09.28ID:xxHhxfq10
広告規制?じゃあこれが書けたらもう規制されていないってことになるな。

スッキリわかるJava入門 第2版 (スッキリシリーズ)
http://amzn.asia/9g0zliW

スッキリわかる Java入門 実践編 第2版 (スッキリシリーズ)
http://amzn.asia/alqE1va

実践Javaコーディング作法 プロが知るべき、112の規約と21の心得
http://amzn.asia/23rpAka

Java最強リファレンス
http://amzn.asia/3aurJOH

EFFECTIVE JAVA 第2版 (The Java Series)
http://amzn.asia/4YFRoaX

Kotlinスタートブック -新しいAndroidプログラミング
http://amzn.asia/7IfUpj4

Kotlin Webアプリケーション 新しいサーバサイドプログラミング
http://amzn.asia/bD9xF5D
2018/07/09(月) 11:54:18.64ID:7rJHuXne0
入門的な質問ですいません
スッキリ分かるjava入門のサンプルコードなんですが
外側の繰り返しと書いてあるんですが外側の繰り返し(?)というのはjのことであってますか?どっちが外か入門書に書いてないんですけど…
それと6行目と8行目はどういう原理で5行目に空白と改行を与えてるのかわかりません教えて下さい;

public class Main{
public static void main(String[]args){
for(int i=1;i<10;i++){
for(int j=1;j<10;j++){
System.out.print(i*j);
System.out.print(" ");
}
System.out.println(" ");
}
}
}
2018/07/09(月) 12:07:08.78ID:hqnBC/A3M
iが外側ですが、これが入門書に説明がなくて理解できない、という状況が
理解できないので、すいませんがこれ以上は詳しく解説できません。

jが外側と判断したその理由を聞けば、なにをどう勘違いしたらそうなって
しまったのかを説明できるかもしれませんが、Javaというより簡単な
日本語の領分かと思います。
2018/07/09(月) 12:23:22.88ID:7rJHuXne0
え、プログラミング始めたてのときでもどっちが外か内か飲み込めました?
どっちの値が先に繰り返しされてるかなんて実行結果見ても分からないですし
どちらが外か内か分からなかったです。疑問に持つ所がおかしいんですかね・・・・・・・
教えてくれてありがとうございます
86デフォルトの名無しさん (アウアウカー Saf1-tqMh [182.251.240.36])
垢版 |
2018/07/09(月) 12:57:41.59ID:Xj/c9OYda
>>83
6行目は改行なしで空白のみ出力。
8行目は空白と改行を出力。

まあしかし8行目は System.out.println();だけでも良い筈なんだけどね。
2018/07/09(月) 13:20:22.89ID:RPo/jFjY0
>>82
少し文章を変えると、Rock54 規制に掛からない

漏れは「書籍名、著者名、出版年」を書いていたら、書き込めなかった。
2, 3文字の短い文字列を、偶然に使っても、規制されることもあるし、たまたまなんだろう

MANGO 板で、何回もテストすれば、どの文字列がダメなのか、わかるのだろうが
2018/07/09(月) 13:40:50.44ID:RPo/jFjY0
>>83
printf を使って、こうしてみ。
使い方は、printf を参照

for(int i=1;i<4;i++){
for(int j=11;j<14;j++){
System.out.printf("i = %d : j = %d%n", i, j);
}
}
89デフォルトの名無しさん (ワッチョイ 8d23-qopO [58.80.78.151])
垢版 |
2018/07/10(火) 11:50:14.94ID:noOOH4cI0
>>83
家の中、家の外。鬼は外、福は内。室内、室外。車内、車外。箱の内側、箱の外側。

箱の中の箱、ループの中のループ。

日本語では、先・後 ≠ 内・外 です。

どちらが先に繰り返しされるかではなく、iループのブロックの内側に(中に)
jループのブロックがあるというイメージ。

よってjのループが内側の繰り返し、iのループが外側の繰り返し。
このような構造のループを入れ子になったループ構造、二重構造のループなどという。

6行目はjループの中、8行目はjループの外で実行される。
90デフォルトの名無しさん (ワッチョイ 8d23-qopO [58.80.78.151])
垢版 |
2018/07/10(火) 12:01:40.11ID:noOOH4cI0
>>83
追加。
合計、平均値、ソート、探索など簡単なやつでいいのでアルゴリズムも並行して学習
したほうがいいですよ。
2018/07/15(日) 06:10:31.09ID:GJzpRcdJ0
配列作成の宣言文はいくつかあるみたいですが
どれ使ってもいいんですか?全て覚えないと後々問題抱えたりはしませんか
int[] s= new int[5]
int[] s =new int[]{1,2,34,4,4,5};
int[]s ={1,2,3,4,5,6,};
とか乗ってますが
2018/07/15(日) 07:58:36.31ID:bofrUcNdM
それぞれ何が省略されているだけなのかと
省略できる仕組みが分かっていれば。
2018/07/15(日) 08:19:27.37ID:GJzpRcdJ0
>>92
ありがとうございます
ガベージコレクションの説明項でnewで確保された要素は普通の変数じゃないからブロックが終了しても
変数は寿命を迎えないみたいなこと書いてあるんですけど、宣言文とは関係ないことですか?
2018/07/15(日) 09:11:45.54ID:OyfnAnImM
>>93
宣言文でプリミティブか参照型か決まるから、
関係はあるんじゃないかな。
参照型で宣言してスタックに参照があって実体がヒープに
インスタンスを持つのがGC対象なのでこれはブロックの終了と
必ずしも連動しない。
2018/07/15(日) 17:50:22.07ID:GJzpRcdJ0
>>94
すいません全然分からないです。難しすぎて…。
聞きたかったのはブロック内で宣言した変数はブロックが終わったと同時に消滅しますが
newで確保された要素はブロックが終わっても消滅しないみたいなことが入門書に書いてあるので
配列変数の宣言文でnewを使った方がいいのか?って思って質問しました。
96デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.1.2])
垢版 |
2018/07/15(日) 18:10:43.63ID:GQF9Hy3Z0
>>95
int[] s = new int[]{1,2,3};
int[] s = {1,2,3};

これはどっちも同じだよ
コンパイルしたら↓こうなる

int[] s = new int[3];
s[0] = 1;
s[1] = 2;
s[2] = 3;
2018/07/15(日) 18:39:17.53ID:FNEUyv360
>>95
それ多分要素に入れる値はブロックから抜けても解放されないって説明じゃないかな?
2018/07/16(月) 06:29:43.68ID:x0QANHoK0
>>97
ありがとうございます
それのことです。配列の宣言の仕方によってはブロックから抜け出しても変数の値は消滅しないのかなと思ってしまったんですが
関係なかったですか
2018/07/16(月) 06:41:59.82ID:Yej864Pfd
>>98
宣言の仕方は関係ない
配列に入れた値は配列自体が参照し続けるので開放されないってことをその本説明したいのだと思う

この辺はJavaのデータがメモリへ値をどう確保するかってのとGCの対象になる値がどういう物か理解する必要がある
2018/07/16(月) 11:52:53.77ID:80hpbb9v0
もし、配列が格納している要素が、primitive じゃないオブジェクトだったら、
配列のスコープを出た所で、配列は消滅するけど、

中に入っていたオブジェクトは消滅しないし、
それらにアクセスする参照だけが無くなっている

つまり、メモリリークか?

それとも、どこからも参照できないから、その後、
各オブジェクトのGC が呼ばれるのか?
2018/07/16(月) 12:11:09.06ID:F9mL4/4I0
そんなん仮に参照カウント方式でやってても循環参照がなければ普通に回収されるだろ……
102デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.0.18])
垢版 |
2018/07/16(月) 12:13:08.12ID:u+9tbpzg0
>>100
どこからも参照されないのならGC対象になるよ

{
 Integer[] a = new Integer[1];
 a[0] = new Integer(1);
}

// ここではaもa[0]もGC対象になる
103デフォルトの名無しさん (ワッチョイ 2be3-L1xz [49.253.38.206])
垢版 |
2018/07/16(月) 22:36:19.23ID:NBO34+YX0
{
 Integer[] a = new Integer[1];
 a[0] = new Integer(1);
}

{
 Integer[] a = new Integer[1];
 a[0] = 1;
}
は、全く同じコードかそうでないか。答えと理由を述べよ。 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
104デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.24.135])
垢版 |
2018/07/17(火) 04:29:24.39ID:EqDA6MfF0
>>103
a[0] = 1;
はコンパイル時に
a[0] = Integer.valueOf(1);
に変換される

Integerクラスはスタティック変数に
-128〜127までのIntegerオブジェクトをキャッシュしていて
valueOfメソッドは引数がキャッシュの範囲内であればキャッシュしている
オブジェクトを返す。さもなくばnew Integerしたオブジェクトを返す。

new IntegerはJava 9からDeprecatedになっているから
プログラムから直接呼び出さないことが推奨される。
a[0] = new Integer(1)よりも
a[0] = Integer.valueOf(1)やa[0] = 1が
良いコードと言えるでしょう。
105デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.24.135])
垢版 |
2018/07/17(火) 04:33:11.31ID:EqDA6MfF0
したがって
{
 Integer[] a = new Integer[1];
 a[0] = new Integer(1);
}

{
 Integer[] a = new Integer[1];
 a[0] = 1;
}
は全く同じコードとは言えない。
理由はコンパイル時に異なるバイトコードが生成されるからだ。
2018/07/17(火) 05:33:47.16ID:H2E1imdF0
今Java環境ってどうなってるか知らんが
それ全部実装依存じゃなくて、言語仕様で決まってるの?
107デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.24.135])
垢版 |
2018/07/17(火) 05:35:39.33ID:EqDA6MfF0
>>106
言語仕様では決まってるわけないと思う
108デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.24.135])
垢版 |
2018/07/17(火) 05:36:11.14ID:EqDA6MfF0
言語仕様で縛るような話じゃないし
言語って結局文法だからね
109デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.24.135])
垢版 |
2018/07/17(火) 05:36:57.43ID:EqDA6MfF0
ドキュメントも言語仕様とAPIはわけられてるし
一緒にして良いものではないと思う
110デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.24.135])
垢版 |
2018/07/17(火) 05:56:45.96ID:EqDA6MfF0
と思いきや、ボクシングにvalueOfが使われるとは書かれてないけど
-128〜127なら同じオブジェクトになるってことは書かれてる
これはもう全部言語仕様と言って良いでしょう!

5.1.7. Boxing Conversion
https://docs.oracle.com/javase/specs/jls/se10/html/jls-5.html#jls-5.1.7
111デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.24.135])
垢版 |
2018/07/17(火) 06:17:57.20ID:EqDA6MfF0
仮に実装依存だとするならば
実装によって異なる可能性が存在するわけであるから
全く同じコードかという命題は偽になる

ゆえに、実装依存であっても偽になり、
実装依存でなくても偽になるわけであるから
恒偽命題と言って良いでしょう!
112デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.24.135])
垢版 |
2018/07/17(火) 06:29:53.56ID:EqDA6MfF0
恒偽命題とは、他の命題の真偽に依存することなく、常に偽になる命題です。

コードAとコードBが全く同じコードになるかという命題が真であると
仮定した場合、それが実装依存ならば偽となり、実装依存でないならば真となる。

ゆえに、実装依存かという命題は他の命題の真偽に依存するわけであるから恒偽命題とは言えないのです。
113デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.24.135])
垢版 |
2018/07/17(火) 06:33:23.84ID:EqDA6MfF0
あなんかすみません、荒らしてるみたいで
全然そういうことやるつもりは無いんですけど
3連休で休息取りまくった結果、脳がフル活動してるっていうか
そういう状況でいわばしかたがないんです
114デフォルトの名無しさん (ワッチョイ fbb6-A8mW [111.90.24.135])
垢版 |
2018/07/17(火) 06:38:48.39ID:EqDA6MfF0
違うなあ、命題という言葉の使い方を間違えてる
全部見なかったことにして欲しい
ID:EqDA6MfF0 <- NG推奨ID
115デフォルトの名無しさん (アウアウカー Sa55-jzog [182.251.240.16])
垢版 |
2018/07/17(火) 12:20:35.21ID:lbJGoJLra
>>103
オートボクシングで同じになる。
2018/07/18(水) 21:41:39.40ID:L7ofGWBt0
別ファイルにあるクラスやフィールドやメソッドを参照するにはどうすれば良いのでしょうか?

また、継承できるクラス(ファイル)は1つのみですよね
継承の場合はインスタンス化しなくてもそのまま使えるけど、
別ファイルの場合はインスタンス化してからでないと使えない
という認識で合っていますか?
2018/07/18(水) 22:37:42.36ID:M6hVFp0xa
上1行:importして使えばいい。
下4行:貴方にとって継承はオーバーテクノロジ。いったん忘れろ。
2018/07/18(水) 23:28:54.65ID:L7ofGWBt0
>>117
継承していようが親のフィールドを使う場合は
子でもインスタンス化は必須・・・で合っていますか;

ありがとうございました。
2018/07/19(木) 09:52:14.22ID:p8eAugKgM
>>118
合ってない。
2018/07/19(木) 12:18:52.55ID:Op5duy3qM
>>119
え?
121デフォルトの名無しさん (ワッチョイ 237c-0FgR [61.245.58.130])
垢版 |
2018/07/19(木) 13:40:15.59ID:lzwulHPo0
「インスタンス化」と「コンストラクタを書くこと」をごっちゃにしていないか?
2018/07/19(木) 13:59:01.76ID:LewvICfod
クラスフィールド弄るのにインスタンスは関係ないし。
2018/07/19(木) 14:45:44.12ID:Op5duy3qM
ではクラスフィールど以外のフィールドでは大正解なわけですね
2018/07/19(木) 15:03:32.13ID:veHa4qNPa
フィールドを「使う」の使い方次第だけど、
getDeclaredFields()から使うなんてのもありなら
クラスフィールド以外でもインスタンスにしなくても「使える」よ。

「クラスフィールど以外のフィールドでは大正解」
みたいな言葉遊びを始めたら、きりないと思うよ。
2018/07/19(木) 17:19:36.45ID:Op5duy3qM
>>124
メソッド使うのにもインスタンスいるでしょw
にわかですか?
2018/07/19(木) 17:27:03.52ID:27UwT6HQM
>>125
classリテラルでも使ってください。
貴方が理解できるかどうかは知らんが。
2018/07/19(木) 17:49:47.54ID:Op5duy3qM
>>126
クラスリテラルを使ったらインスタンス化しなくても継承先のフィールド使えるんどすか、それはステキザマスな
2018/07/19(木) 17:52:00.54ID:Op5duy3qM
インスタンスフィールド使うんやったら
インスタンス化せなあかんやろ
2018/07/19(木) 17:52:23.13ID:Op5duy3qM
それを言うてんねんアホ共が
2018/07/19(木) 17:53:32.65ID:Op5duy3qM
誰やスタティックフィールドのこと言い出したんわ
おしりペンペンや!
2018/07/19(木) 17:53:57.98ID:Op5duy3qM
>>122
お前かおらあ!
2018/07/19(木) 17:55:42.08ID:Op5duy3qM
>>124
言葉遊びしてんのはお前や
ええ加減にせえ!
2018/07/19(木) 17:56:19.54ID:AhuF8cwLa
Field[] fields = A.class.getFields();
取り出したFieldの使い方について、
貴方がインスタンス経由で扱うというならそうなんだろう、
としか言いようないな。
使うの定義が狭い貴方なら成り立つ、これでいい?
2018/07/19(木) 17:58:05.39ID:Op5duy3qM
>>133
誰がリフレクションの話してんのや
オブジェクト指向を愚弄するな!
2018/07/19(木) 17:59:21.88ID:Op5duy3qM
ほんまお前らしょうもない揚げ足取りでええ加減なことばかり言いやがって、親の顔が見てみたいわ
2018/07/19(木) 18:00:08.39ID:Op5duy3qM
親のフィールド使うんやったら
インスタンス化は必須や、ええなこれで
2018/07/19(木) 18:00:37.20ID:4YOUlG++a
必須かどうかを聞かれたから、必須ではない、合ってないと
教えてあげただけなのに困ったもんだ┐(´д`)┌ヤレヤレ

しかも理解できないときた。
2018/07/19(木) 18:01:10.65ID:Op5duy3qM
友達のいないキモオタ共がしょうもない知識ひけらかしおって
2018/07/19(木) 18:03:23.07ID:Op5duy3qM
>>137
言葉を切り取るな、文脈を理解せえ
アホなマスコミのようなことやりやがって
2018/07/19(木) 18:04:01.25ID:cq7/kbbFM
>>136
貴方が己にそれが必須であるという制約を課すのを止めるつもりはない。
炎上学習法は成功したでしょ、これでclose。
2018/07/19(木) 18:06:27.08ID:Op5duy3qM
>>140
なんの勉強にもならんかったわ
アホがなんか言うとるで言うて
俺の教室盛り上がっとるでw
やっぱ5chはこんなクズしかおらんわ言うて
2018/07/19(木) 18:08:10.59ID:Op5duy3qM
リフレクションとかアホやろ
スタティックフィールドはバカや
インスタンスフィールドは賢い
2018/07/19(木) 18:36:03.20ID:B62Oo3TMd
落ち着けw
まぁ人間的に言えば文脈から察しろだし
プログラマ的に言えば正確に言わないのはNGってことでいいじゃないか

仕事場でそんな質問されたら俺は突っ返すけど
144デフォルトの名無しさん (アウアウウー Sa49-8IdG [106.132.86.143 [上級国民]])
垢版 |
2018/07/19(木) 20:39:37.77ID:619JXZu+a
こんなやり取りしてるからデスマになるんだろうな
145デフォルトの名無しさん (アウアウカー Sad1-GY9v [182.251.240.13])
垢版 |
2018/07/19(木) 21:12:54.03ID:tifuZFloa
あれ?誰かがキレたの?
暑いからな。体には気を付けないとな。
水分取るの忘れずにな。
2018/07/19(木) 22:58:07.97ID:ZayUTiVed
ID:Op5duy3qM ひさびさの究極のキチガイって感じだなw
生きている価値のない究極のゴミクズw
2018/07/19(木) 23:02:15.68ID:zpCf8yuT0
言ってることは普通なのになんでこんなバカっぽく見えるんだろう?
2018/07/20(金) 06:15:14.35ID:9jNWx6X+0
入門書の例文なんですが5行目はなぜ書かないとエラーになるんですか?
あとこの行は添字にiを代入してるですか?

public class Main{
public static int[] makeArray(int size){
int[] newArray = new int[size];
for(int i = 0;i < newArray.length;i++){
newArray[i] =i;
}
return newArray;
}
public static void main(String args[]){
int array[]=makeArray(3);
for(int i : array){
System.out.println(i);
}

}
}
149デフォルトの名無しさん (ワッチョイ 85b6-S8kU [220.208.96.97])
垢版 |
2018/07/20(金) 06:32:53.49ID:aSo4GDyF0
>>148
5行目って newArray[i] =i; でしょ
実行すればわかるけど5行目がなくてもエラーにはならない

配列のi番目に値を代入している
2018/07/20(金) 06:50:33.71ID:9jNWx6X+0
後スッキリ分かるjava入門6章の複数クラスによる開発って所は
JDKっていうのダウンロードしないと学習できないですか?dokojavaだとエラーがでます・・
2018/07/20(金) 06:54:11.63ID:9jNWx6X+0
>>149
ありがとうございます。
要素に代入してたんですね。もっかい5行目消して実行したら000で出来ました。すいません
配列変数は初期化しなくてもいいんですね
152デフォルトの名無しさん (ワッチョイ 85b6-S8kU [220.208.96.97])
垢版 |
2018/07/20(金) 07:06:08.67ID:aSo4GDyF0
>>150
どういうプログラムでなんてエラーが出るのかしら?
2018/07/20(金) 07:16:22.26ID:9jNWx6X+0
public class CalcLogic{
public static int tasu(int a,int b){
return (a+b);
}
public static int hiku(int a,int b){
return (a-b);
}
}

public class Calc{
public static void main(String[]args){
int a =10;int b =2;
int total = tasu(a,b);
int delta = hiku(a,b);
System.out.println("足すと"+total+"引くと"+hiku);
}
}

クラスCalcLogicはpublicであり、ファイルCalcLogic.javaで宣言する必要があります
Main.java(1行目)
クラスCalcはpublicであり、ファイルCalc.javaで宣言する必要があります
Main.java(10行目)
シンボルを見つけられません シンボル: メソッド tasu(int,int) 場所: クラス Calc
Main.java(13行目)
シンボルを見つけられません シンボル: メソッド hiku(int,int) 場所: クラス Calc
Main.java(14行目)
シンボルを見つけられません シンボル: 変数 hiku 場所: クラス Calc
2018/07/20(金) 07:18:11.67ID:9jNWx6X+0
って出ますね…他のコードも同じようなエラーで出来ないですね。
JDKって物をダウンロードしないと6章は飛ばすしかないんですかね
155デフォルトの名無しさん (ワッチョイ 85b6-S8kU [220.208.96.97])
垢版 |
2018/07/20(金) 07:42:16.58ID:aSo4GDyF0
CalcLogicをCalcLogic.javaで宣言すればいんじゃないかな
dokojavaのタブのところを押すとクラスファイル作れるっしょ
そこでCalcLogic.javaを作ればいい

Eclipseとか使った方が良いと思うけどね

本持ってないから6章を飛ばしたが良いかはわからん
2018/07/20(金) 10:11:12.07ID:wmaa87srM
さすがにもうeclipseとかいう糞は忘れていい
IntelliJかVSCodeを使おう
2018/07/20(金) 10:44:03.91ID:p6o0GwEl0
クラス名・ファイル名を合わせないといけないとか、
パッケージを作ったら、それをフォルダ階層と合わせないといけないとか、

パッケージ化について、色々なルールがある
158デフォルトの名無しさん (アウアウカー Sad1-GY9v [182.251.240.6])
垢版 |
2018/07/20(金) 10:51:43.94ID:+BuQOMxBa
それが面倒な人は Kotlin へ
2018/07/20(金) 12:04:07.37ID:I87x1UyWM
>>156
VSCでインクリメンタルコンパイラ使えるん?
2018/07/20(金) 12:16:49.35ID:wmaa87srM
>>159
インクリメンタルコンパイルなんかeclipseもIntelliJもやってないぞ
Javaコンパイラにそんな機能はない
.class単位のインクリメンタルビルドのことならVSCodeも当然やってる
デバッグ実行中のエディットコンティニューすら可能
2018/07/20(金) 12:24:50.67ID:p6o0GwEl0
ここに書いておいた
https://paiza.io/projects/5G9gtFuq0b7Uu2vL667kfw

paiza.io では、ファイル名はMain.java、クラス名はMain にしないと動かない。
また、同一ファイルに、複数のpublic クラスを置けない。

CalcLogic.tasu のように関数名の前に、クラス名も必要

paiza.io では、別ファイルのクラスは、エラーになって読み込めない
2018/07/20(金) 12:28:53.04ID:wmaa87srM
いやeclipseの内蔵コンパイラならインクリメンタルコンパイルできるのか
https://marketplace.visualstudio.com/items?itemName=georgewfraser.vscode-javac
によると、ファイル単位のコンパイルはクソ速いから必要ないという見解みたいだね
2018/07/20(金) 15:29:52.08ID:I87x1UyWM
>>162
eclipseなら文字入力するとリアルタイムにコンパイルエラーがわかるんよ、超便利、超素敵、VSCでもそうなのかなって思っただけ
2018/07/20(金) 15:53:22.26ID:I87x1UyWM
コンパイラの機能じゃないかも
アナライザが動いてんのかな
VSCでも型が間違ってたらすぐエラーがでる?
スペルチェックみたいな感じで
それができたら良いよね
2018/07/20(金) 17:04:28.88ID:zCdAFSj50
eclipseを使ってると、プログラムの3分の1はeclipseに書いてもらうって感じだな。
インスタンス名の次にピリオドを入力するととメソッドの一覧が出るので、そこから選ぶだけだし。
自分がものすごくものぐさになった気がするわ。
2018/07/20(金) 17:16:51.69ID:6o+QAuQB0
わかる
2018/07/20(金) 18:09:59.83ID:9jNWx6X+0
>>155,>>161
dokojavaのクラス変更のタブいじってみましたがダミでした
使うコンパイラによってもルールが違うんですね・
やはりJDKというのをインストールしないとだめみたいですね・・・
サンプルコードまで・・・ありがとうございます
2018/07/20(金) 18:12:21.42ID:ZHpYPCAkd
APIで提供されてるクラス名とかもな
3文字位打って候補出しちゃうわ
2018/07/20(金) 22:30:11.80ID:p6o0GwEl0
>>167
paiza.io, codepad などで、ブラウザを使って、プログラミングすれば?
それに一々、動かさなくても理解できれば、検索して何とかなるから十分

一々、動かして確認していると、時間を食う。
最初に、スッキリを3回読んでから、動かした方が手っ取り早い

読むだけなら、20時間で読める。
2回目は5時間、3回目は2時間で読める
2018/07/20(金) 23:13:14.67ID:9jNWx6X+0
https://devnote.jp/jdk_windows/index.html
の説明を詠みながらJDKを導入しようとしましたが失敗しました
setx /M Path "%JAVA_HOME%\bin;%Path%"
を入力すると エラー)構文が無効です。既定のオプションは2回より多く使えないみたいなエラーと
javac -version
といれると操作可能なプログラムまたはバッチファイルとして認識されていませんみたいなエラーが出ます
何回かやり直しましたが同じエラーが出て駄目でした

他にもう少し簡単に環境導入できて似たような機能が使えるお勧めのものはないでしょうか?
2018/07/20(金) 23:18:03.46ID:9jNWx6X+0
>>169
プログラミング言語入門で・・・今までいじったこともないので見ただけで覚えるってのはちとハードル高いです
APIとか複数クラスは後回しにしてもいいんですかね。アドバイスはありがとうございます
2018/07/20(金) 23:57:17.90ID:1XJtiOGK0
>>170
GUIで設定すれば?
start C:\Windows\system32\rundll32.exe sysdm.cpl, EditEnvironmentVariables
2018/07/21(土) 00:54:54.11ID:PL54dEXd0
>>172
https://eng-entrance.com/java-install-jdk-windowsも参照に再度試しましたが
同じエラーが出て駄目でした
ありがとうございます。
2018/07/21(土) 02:20:09.67ID:Lp20pfrp0
>>173
>(他の環境変数のパス) ;C:\Program Files\Java\jdk1.8.0_101\bin

複数のパスがつながっている場合は、前のパスの後ろに、区切り文字 ; が必要!

PowerShell を起動して、以下を入力して、パスを表示してみ。
ひょっとしたら、前のパスとつながっているかも

$env:Path.split(";")

他には、ファイルパス・ユーザー名など、
システムに半角英数字以外を使っていて、誤動作しているとか?

OS のバージョン・ビット数、エラーメッセージも書いて。
まず正確なエラーメッセージで、検索するのが速い
175デフォルトの名無しさん (ワッチョイ e59f-H0hI [118.152.82.239])
垢版 |
2018/07/21(土) 03:01:10.06ID:5tjqiit90
>>173
コントロールパネル開けた?新しい Windows 10 (バージョン 1803) だとスタートの所で右クリックしても
コントールパネルは出てこないわけだが。(メニューの中の「Windows システムツール」の中にある)。
2018/07/21(土) 17:16:21.54ID:H1/LKYDwa
JDK10をMacにインストールしようとしたんですが
Oracleのダウンロードページが全て404 not foundになっています

どこかにミラーはないのでしょうか?

Dmgファイルを探してみましたがファイルサイトだと
怪しいアドウェアしかないようです
2018/07/21(土) 19:48:56.13ID:5tjqiit90
>>176
このページの Java SE 10.0.2 の JDK の所?
http://www.oracle.com/technetwork/java/javase/downloads/index.html
普通にアクセスできるよ。
2018/07/21(土) 21:34:11.67ID:PL54dEXd0
>>174
https://devnote.jp/jdk_windows/index.html
ここの3-3の3を実行すると
”エラー:構文が無効です。既定のオプションは'2'回より多く使用することはできません
と出ます。
また3-5のjavac -versionを入力すると"avac'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。"と出ます。
他は説明どおりに出来てるんですが・・・
初めてこういうものを導入するのでPowerShellとかよくわからないです…
2018/07/21(土) 21:37:45.36ID:PL54dEXd0
win10 64bitのノートpcでやってます
180デフォルトの名無しさん (ワッチョイ 85b6-S8kU [220.208.96.97])
垢版 |
2018/07/21(土) 22:37:30.39ID:evbWgLmC0
>>178
構文が間違ってるんだと思うよ
"とか省略してない?
リンク先のそのまま貼り付けるんやで
2018/07/21(土) 22:46:43.68ID:PL54dEXd0
>>180
一応サイトの方からコピーで全て張ってましたけど駄目でしたね・・・
これがないと読んでる入門書の複数クラス・APIの章が実行できないんですが
飛ばしてオブジェクト指向の章に飛んでも後々支障ないですかね・・・
■ このスレッドは過去ログ倉庫に格納されています