Java入門・初心者質問スレ(ワッチョイなし) Part.8
JAVAって複雑だよねー
JAVAって本当に奥の深いプログラミング言語だわ
JAVAの素晴らしさがわからない阿呆がかわいそうだよね >>393
JAVAの素晴らしさを理解できないサル脳 なんだこの馬鹿w必死に俺を煽ってたのかw
気づいてもらえないからまたレスつけたんだろうなw
さすが算数もできないバカw バカが自分のバカさに気づいたから恥ずかしすぎて釣りってことにして逃げたんだろうなぁ(哀れみw
コイツこの前のチンパン学生だろうなw
ホント馬鹿の思考って死ぬほどわかりやすすぎてビックリするわ このチンパンガチで小中学生ぐらいじゃねーか?w
小中学生が5ch見るとは思えんねーんけど
さすがにこのレベルの精神年齢幼児は見たことねーわ
延々とブーメラン投げ続ける幼さはどう見ても厨房以下だし
これで大学生以上とかだったら親が悲惨すぎるだろw >>401
第三者として言わせてもらうとお前も同じだぞ つまんねーことばっか書いてんじゃねえよカスw
理論的に書けねーんならだまってろカスw
でも悔しいから書いちゃうんよね?ね?
すっごい顔真っ赤にして書いちゃうんよねバーカ
よく読んでからレスしろひとまずは馬鹿者 +=a と =+a を間違えてしまうのですがどうすればいいですか?
また
-=a と =-a も間違いやすくて困ります
間違うと結構致命的な欠陥が起きるので
間違わない方法を教えて下さい 間違えない方法を考えるよりも
たとえ間違ったとしても致命的な問題にはならないようにする方法を考えたほうがいいよ
これはあらゆる安全対策に共通する考え方 = +a と見ればaにプラスの記号がついているだけだなとわかる
= -a も同様
こういう風に覚えれば混乱することはない なるほど+-でもなかなか深いですね
やっぱり基本は算数だということは痛感します oauthとサーブレットって同じものですか?どう違いますか? OAuthは認証の仕組みJavaとは関係ない
サーブレットはWebサーバで動作するJavaのプログラム >>413
Javaのセッションスコープに入ってるログイン情報を使って他のページに遷移するのとは違うんですね。㌧ 初歩の初歩的な質問で恐縮なのですが
test/Hoge.java内でpackage test;と書くと
The declared package "test" does not match the expected package(宣言されたパッケージ "test "が期待されたパッケージと一致しません。)となり。
test/test/Hoge.java内でpackage test;と書くと普通に実行できるのですが何が違うんでしょうか? なにかIDE的なものを使ってない?
それで、例えばパッケージ名がmypkgの時に、
PROJECT_HOME/src/mypkg/Hoge.java
PROJECT_HOME/test/mypkg/HogeTest.java (単体テスト用)
の様にファイルを配置するルールになってるんじゃない? 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にプロジェクトディレクトリを宣言するのは根本的におかしいことなのでしょうか? すみませんスペースが消えて見にくいので再投稿します;;
PROJECT(VSCODEで開いてる)/
├---Main.java
└---pkg/Sub.java なんとなく状況は分かりました
まず"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指定は必要ありません(出来ません) 書き足し
あなたの場合、"SOME_WHERE/PROJECT"がsource pathとして扱われているので、PROJECT/pkg/Sub.javaに
package pkg;
と記述するのは正しいですが、
PROJECT/Main.javaは配置場所からdefault packageに属するのでpackage指定は必要ありません(指定出来ません) ありがとうございます。やはりパッケージ関連の知識と認識がずれていました。
使用していた教材のパッケージに関する説明が浅すぎて誤解を重ねていたようです。
ご指摘を受けて改めて調べたところVSCodeのsetting.jsonで"java.project.sourcePaths"などを設定できることがわかりました(というかプロジェクトのひな形を作れた)。
また、学習を始めたばかりでディレクトリ構成に対する意識がまったくなかったので新しい課題も見つかってうれしいです。
次はもう少し専門的な質問が出来るように励みますm(__)mありがとうございました!! プログラム書いてるうちに一つのファイルで4000行メソッド数150くらいになったんだけどこれってデカすぎ? >>424
1メソッド平均27行ならそんなにおかしくはないんじゃないの
役割を整理してもう少しクラス(ファイル)を分けたほうがいい気もするけど
内容によっては1クラスに150メソッドになることもあるだろうから何とも言えん デカすぎるよ
デカすぎる不便をジワジワ感じ取ってほしい
デカすぎないようにいつどうしたらよかったか
それを将来考えることになると思う
ただし、クラスなんてサイズを理由に分割するもんじゃないし
クラス名とクラスの役割の輪郭がハッキリするように
再利用性の高いクラスをつくっていけるように
そんなふうに努力した結果、サイズもちっちゃく収まってくるもんだと思ってる publicなメソッド数やオーバーロードの数なんかによるな
一般的なアプリケーションプログラムのクラスなら分割考える Java はフォルダ構成とか、クソほど難しい
Ruby なんか簡単に動く。
Ruby on Rails でも、フレームワークでプロジェクトのフォルダ構成は決まっているし、
全員が同じ構成を使うから、分かりやすい >>424
なんでそんなにでかくなった?なんか設計おかしくないか? java.util.Collectionsが
コメント入れて約5600行
コメント抜きで約3500行
インナークラスが約50個
メソッド数が約400(インナークラスのメソッド・コンストラクタも含む、300以上は1行のみ、Unsupported例外を投げるやつも含む)
こういう広く使われるライブラリで
管理上どうしても1ファイルに収めておきたい特殊な事情がある場合のみ
辛うじて許容されるレベルだと思う jQuery の非圧縮版は1万行で、30KB もある 自クラス内なら aMethod(); で済むところ
var otherClass = new OtherClass();
otherClass.aMethod();
めんどくさい。 OutputStreamで謎の文字化けが突然始まり悩んでいたら
UTF-16にしてみたら解決した
何やねんUTF-16ってUTF-8ってもう使えんのか
時代の流れについていけへんわ 超古いSDKを使っているせいなのでしょうか?
誤作動します
どうすればいいですか? Javascriptを学びたいと思います。オンラインで学べますか。どれくらい時間がかかりますか。 >>441
ありがとうございます。他で尋ねてみます。