X



Java入門・初心者質問スレ(ワッチョイなし) Part.8
0394デフォルトの名無しさん
垢版 |
2023/06/03(土) 19:17:12.08ID:b989Y/JG
JAVAって複雑だよねー
JAVAって本当に奥の深いプログラミング言語だわ
JAVAの素晴らしさがわからない阿呆がかわいそうだよね
0396デフォルトの名無しさん
垢版 |
2023/06/04(日) 01:40:31.41ID:70umuYY5
なんだこの馬鹿w必死に俺を煽ってたのかw
気づいてもらえないからまたレスつけたんだろうなw
さすが算数もできないバカw
0398デフォルトの名無しさん
垢版 |
2023/06/04(日) 06:04:15.65ID:70umuYY5
バカが自分のバカさに気づいたから恥ずかしすぎて釣りってことにして逃げたんだろうなぁ(哀れみw
コイツこの前のチンパン学生だろうなw
ホント馬鹿の思考って死ぬほどわかりやすすぎてビックリするわ
0401デフォルトの名無しさん
垢版 |
2023/06/04(日) 07:26:11.88ID:70umuYY5
このチンパンガチで小中学生ぐらいじゃねーか?w
小中学生が5ch見るとは思えんねーんけど
さすがにこのレベルの精神年齢幼児は見たことねーわ
延々とブーメラン投げ続ける幼さはどう見ても厨房以下だし
これで大学生以上とかだったら親が悲惨すぎるだろw
0404デフォルトの名無しさん
垢版 |
2023/06/04(日) 13:12:16.82ID:ReNIe+uP
>>401
第三者として言わせてもらうとお前も同じだぞ
0405デフォルトの名無しさん
垢版 |
2023/06/04(日) 17:35:14.87ID:T1LmkLX/
つまんねーことばっか書いてんじゃねえよカスw
理論的に書けねーんならだまってろカスw
でも悔しいから書いちゃうんよね?ね?
すっごい顔真っ赤にして書いちゃうんよねバーカ
よく読んでからレスしろひとまずは馬鹿者
0406デフォルトの名無しさん
垢版 |
2023/06/04(日) 23:03:01.17ID:m1JLB1wn
Kotlin もよろしく
0407デフォルトの名無しさん
垢版 |
2023/06/06(火) 16:43:01.52ID:W7j1snNT
+=a と =+a を間違えてしまうのですがどうすればいいですか?
また
-=a と =-a も間違いやすくて困ります

間違うと結構致命的な欠陥が起きるので
間違わない方法を教えて下さい
0408デフォルトの名無しさん
垢版 |
2023/06/06(火) 17:07:41.74ID:FRP+wj7b
間違えない方法を考えるよりも
たとえ間違ったとしても致命的な問題にはならないようにする方法を考えたほうがいいよ
これはあらゆる安全対策に共通する考え方
0409デフォルトの名無しさん
垢版 |
2023/06/06(火) 17:32:34.99ID:bPa/UKtc
= +a と見ればaにプラスの記号がついているだけだなとわかる
= -a も同様
こういう風に覚えれば混乱することはない
0410デフォルトの名無しさん
垢版 |
2023/06/06(火) 19:55:38.56ID:B6OKgMuL
そのうち慣れるよ
0411デフォルトの名無しさん
垢版 |
2023/06/07(水) 01:19:20.64ID:5P0yt83I
なるほど+-でもなかなか深いですね
やっぱり基本は算数だということは痛感します
0413デフォルトの名無しさん
垢版 |
2023/06/08(木) 16:04:52.14ID:/D7k/eOt
OAuthは認証の仕組みJavaとは関係ない
サーブレットはWebサーバで動作するJavaのプログラム
0414デフォルトの名無しさん
垢版 |
2023/06/08(木) 20:16:59.15ID:QfsUSLCb
>>413
ヤバい質問に真面目に答えてて偉い
0415デフォルトの名無しさん
垢版 |
2023/06/09(金) 02:24:48.58ID:wa2uQ3H6
>>413
Javaのセッションスコープに入ってるログイン情報を使って他のページに遷移するのとは違うんですね。㌧
0417デフォルトの名無しさん
垢版 |
2023/07/08(土) 08:25:58.69ID:4n78TG20
初歩の初歩的な質問で恐縮なのですが
test/Hoge.java内でpackage test;と書くと
The declared package "test" does not match the expected package(宣言されたパッケージ "test "が期待されたパッケージと一致しません。)となり。

test/test/Hoge.java内でpackage test;と書くと普通に実行できるのですが何が違うんでしょうか?
0418デフォルトの名無しさん
垢版 |
2023/07/08(土) 09:11:08.45ID:uBfmbO8B
なにかIDE的なものを使ってない?
それで、例えばパッケージ名がmypkgの時に、
PROJECT_HOME/src/mypkg/Hoge.java
PROJECT_HOME/test/mypkg/HogeTest.java (単体テスト用)
の様にファイルを配置するルールになってるんじゃない?
0419デフォルトの名無しさん
垢版 |
2023/07/08(土) 11:13:05.01ID:4n78TG20
VSCODEを使用しています(最初に書いておくべきでしたm(__)m)。
PROJECT(VSCODEで開いてる)/
Main.java
pkg/
Sub.java
という構成で練習していて
Sub.javaで package pkg; と書くのは問題ないのですが、
Main.javaで package PROJECT; と書くと前述のエラーになります。

まだjavaプロジェクトのフォルダ構成の知識がないので、ご指摘のようにVSCodeで何かのルールを設定しているというより、私が変な勘違いをしているのが原因だと思います。
改めてお聞きしたいのですが
1.packageはプロジェクトホームの直下に作ったパッケージ用ディレクトリ内のjavaファイルで宣言するものなのでしょうか?
2.packageにプロジェクトディレクトリを宣言するのは根本的におかしいことなのでしょうか?
0420デフォルトの名無しさん
垢版 |
2023/07/08(土) 11:19:24.15ID:4n78TG20
すみませんスペースが消えて見にくいので再投稿します;;
PROJECT(VSCODEで開いてる)/
├---Main.java
└---pkg/Sub.java
0421デフォルトの名無しさん
垢版 |
2023/07/08(土) 13:15:46.81ID:uBfmbO8B
なんとなく状況は分かりました
まず"2."に対しては、プロジェクト的なディレクトリ(VSCodeだとworkspace folder)の名前をpackage名には普通用いません

次に、Javaのpackageをもう少し理解しましょう
Javaのpackageはsource pathのルート(起点)からの相対で表現されます
例えばMain.javaのpackageが
package jp.example.hoge.myapp;
である場合、
MyAppProj/src/jp/example/hoge/myapp/Main.java
のように配置します(srcディレクトリを作るかは流儀によりますが、ここでは含めるスタイルで書きます)
この例の場合MyAppProjがC:\Users\hoge\Documents\MyAppProjにあるとすると、source pathはC:\Users\hoge\Documents\MyAppProj\srcです
ここで
MyAppProj/src/Hoge.java
のように配置した場合、Hoge.javaにはpackageは指定しません(指定できません)
これをdefault packageと呼びpackage名を持たない特別な名前空間です
(なおdefault packageは通常、簡単なテストや短い書捨てプログラムにのみ用い、実用的なプログラム開発では使用しません)

あなたの場合、PROJECT/pkg/Sub.javaに
package pkg;
と記述するのは正しいですが、
PROJECT/Main.javaは配置場所からdefault packageに属するのでpackage指定は必要ありません(出来ません)
0422デフォルトの名無しさん
垢版 |
2023/07/08(土) 13:24:35.77ID:uBfmbO8B
書き足し

あなたの場合、"SOME_WHERE/PROJECT"がsource pathとして扱われているので、PROJECT/pkg/Sub.javaに
package pkg;
と記述するのは正しいですが、
PROJECT/Main.javaは配置場所からdefault packageに属するのでpackage指定は必要ありません(指定出来ません)
0423デフォルトの名無しさん
垢版 |
2023/07/08(土) 14:00:31.84ID:4n78TG20
ありがとうございます。やはりパッケージ関連の知識と認識がずれていました。
使用していた教材のパッケージに関する説明が浅すぎて誤解を重ねていたようです。
ご指摘を受けて改めて調べたところVSCodeのsetting.jsonで"java.project.sourcePaths"などを設定できることがわかりました(というかプロジェクトのひな形を作れた)。
また、学習を始めたばかりでディレクトリ構成に対する意識がまったくなかったので新しい課題も見つかってうれしいです。
次はもう少し専門的な質問が出来るように励みますm(__)mありがとうございました!!
0424デフォルトの名無しさん
垢版 |
2023/07/08(土) 19:05:48.95ID:o34+FQNw
プログラム書いてるうちに一つのファイルで4000行メソッド数150くらいになったんだけどこれってデカすぎ?
0425デフォルトの名無しさん
垢版 |
2023/07/08(土) 19:37:24.42ID:/iPIpjid
>>424
1メソッド平均27行ならそんなにおかしくはないんじゃないの
役割を整理してもう少しクラス(ファイル)を分けたほうがいい気もするけど
内容によっては1クラスに150メソッドになることもあるだろうから何とも言えん
0426デフォルトの名無しさん
垢版 |
2023/07/08(土) 21:41:00.88ID:eVw4jtGK
デカすぎるよ
デカすぎる不便をジワジワ感じ取ってほしい
デカすぎないようにいつどうしたらよかったか
それを将来考えることになると思う

ただし、クラスなんてサイズを理由に分割するもんじゃないし
クラス名とクラスの役割の輪郭がハッキリするように
再利用性の高いクラスをつくっていけるように
そんなふうに努力した結果、サイズもちっちゃく収まってくるもんだと思ってる
0427デフォルトの名無しさん
垢版 |
2023/07/08(土) 22:17:52.87ID:dF7KJNrB
publicなメソッド数やオーバーロードの数なんかによるな
一般的なアプリケーションプログラムのクラスなら分割考える
0429デフォルトの名無しさん
垢版 |
2023/07/09(日) 00:34:38.78ID:6w1xzOfB
Java はフォルダ構成とか、クソほど難しい

Ruby なんか簡単に動く。
Ruby on Rails でも、フレームワークでプロジェクトのフォルダ構成は決まっているし、
全員が同じ構成を使うから、分かりやすい
0430デフォルトの名無しさん
垢版 |
2023/07/09(日) 03:58:45.66ID:vMstJd5P
>>424
なんでそんなにでかくなった?なんか設計おかしくないか?
0431デフォルトの名無しさん
垢版 |
2023/07/09(日) 16:18:50.01ID:mN5Eud6o
java.util.Collectionsが
コメント入れて約5600行
コメント抜きで約3500行
インナークラスが約50個
メソッド数が約400(インナークラスのメソッド・コンストラクタも含む、300以上は1行のみ、Unsupported例外を投げるやつも含む)

こういう広く使われるライブラリで
管理上どうしても1ファイルに収めておきたい特殊な事情がある場合のみ
辛うじて許容されるレベルだと思う
0433デフォルトの名無しさん
垢版 |
2023/07/09(日) 20:09:05.80ID:BekWhEcC
自クラス内なら aMethod(); で済むところ

var otherClass = new OtherClass();
otherClass.aMethod();

めんどくさい。
0434デフォルトの名無しさん
垢版 |
2023/08/01(火) 21:46:17.80ID:kDDxMcsN
OutputStreamで謎の文字化けが突然始まり悩んでいたら
UTF-16にしてみたら解決した
何やねんUTF-16ってUTF-8ってもう使えんのか
時代の流れについていけへんわ
0436デフォルトの名無しさん
垢版 |
2023/08/01(火) 23:05:05.44ID:x1qf9Kxk
令和最新版はUTF-23かな
0438デフォルトの名無しさん
垢版 |
2023/08/02(水) 14:51:21.97ID:/XzVRKSs
超古いSDKを使っているせいなのでしょうか?
誤作動します
どうすればいいですか?
0439デフォルトの名無しさん
垢版 |
2023/08/02(水) 23:18:22.17ID:OZDRXvgd
Javascriptを学びたいと思います。オンラインで学べますか。どれくらい時間がかかりますか。
0440デフォルトの名無しさん
垢版 |
2023/08/03(木) 03:52:33.89ID:/xW45k0z
>>434
Writer使って出力してないの?
0441デフォルトの名無しさん
垢版 |
2023/08/03(木) 03:53:23.12ID:/xW45k0z
>>439
それはJavaではない。スレチ。
0442デフォルトの名無しさん
垢版 |
2023/08/03(木) 03:54:28.73ID:/xW45k0z
>>438
新しいJDK使えば良いじゃん。
0443デフォルトの名無しさん
垢版 |
2023/08/05(土) 16:10:51.46ID:5UuUJr5V
>>441
ありがとうございます。他で尋ねてみます。
レスを投稿する


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