昔あるJavaの本を読んでいて
パッケージ「com」は企業・個人等が独自に開発したAPIを格納する・・・
というような記述があったように記憶しています

読んだ当時は気にもとめなかったのですが
最近自分でクラスを作ってライブラリ化しようという事になり
どこに格納しようかという問題が発生してしまいました

好き勝手な名前のパッケージを作ってその中に入れようか
「com」というパッケージの中に自分専用のパッケージを作ろうか
悩んでいます

どなたかこの「com」というパッケージがどういう存在であるか
ご存じの方がいらっしゃいましたら教えて下さい

また、最近「org」というパッケージも発見したのですが
中身は「omg」というパッケージがあり
その中は(色々なクラスが有って)良くわかりませんでした
これも「com」と同じくなにか特別なパッケージなのでしょうか?

あと・・・(^_^;)>
このほかに「com」のような特別なパッケージがありましたら
教えて下さい

色々と複雑な質問で恐縮ですが
よろしくお願いします

このQ&Aに関連する最新のQ&A

A 回答 (1件)

「URLのホスト名と逆順に書いたドメイン名」と考えればよいと思います。



SUNは WEBなら XXX.sun.com だから Javaのパッケージ名は com.sun.XXX とか。
W3Cは WEBなら XXX.w3c.org だから Javaのパッケージ名は org.w3c.XXX とか。

ジャストシステムがJavaで書かれた一太郎を出していたと思いますが、
jp.co.justsystem.XXX というパッケージだったはず。

blueskyさんのパッケージは com.bluesky.XXX でも良いけど、
jp.gr.bluesky.XXX でも良いことになります。

正規にドメインを持っていない場合、ぶつかる可能性はゼロにはなりませんが、
めったに起きることではないでしょう。
    • good
    • 0
この回答へのお礼

ドメイン名だったんですか
確かにcom、orgっていったらアメリカの企業かなにかのURLの最後に
ついていますよね!
URLならお互いに申し合わせなくても重ならないし
クラスが無い時に自動的にDLなんてことも出来そうですしね

一応、私のドメインはあるのですが
もうかなり開発を進めてしまったので
いまさらパッケージ名を変えるのは大変なので・・・どうしようかと思っています
簡単に変えるソフトってあるのでしょうか・・・

とにかく、疑問が晴れました
ありがとうございます!

お礼日時:2001/03/02 11:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qライブ開演前のマナーについて

先日、某アーティストのライブに友人と行きました。
そのライブは大変楽しいものでしたが、友人は憤慨していました。
どうしたの、と聞いてみると、
私たちの前に座っていた人たちが、開演前に他のアーティストのDVDを出して、
DVDのパッケージを見ながらそのアーティストについての雑談をしていたというのです。
その人たちは、ライブ中に他のアーティストのグッズを出したわけでもなく、
DVDを流して音を漏らしていたわけでもありません。
友人は、純粋に開演前に他のアーティストについての話をしていたことに怒っていたのです。

私は疑問に思いました。
果たして、ライブ開演前のマナーとして、他のアーティストの話をしてはいけないのでしょうか。
開演までに小説を読んでいることと何か違うのでしょうか。
それとも、小説を読むこともマナー違反なのでしょうか。
みなさんはどうお考えですか。
みなさんの考えを教えてください。

Aベストアンサー

>それとも、小説を読むこともマナー違反なのでしょうか。

マナー違反とまではいえませんが、
確かにファンの人からすればあまり好ましく
感じられないことは確かでしょう。

こういうのは、みんなでぼちぼちと雰囲気を高めて
盛り上がっていこうという気持ちも大切なのですから。

1人白けた奴がいたらそれだけで気分が
盛り下がるのと同じです。
だったら帰れと。。。。言いたくなる人が
いてもおかしくないですね。

Q整数値を任意のオブジェクトを格納できるスタッククラスに格納する方法

class ObjStack {
private Object[] mBuf;
private int mSP;

public ObjStack(int size) {
mSP = 0;
mBuf = new Object[size];
}

public int getSize() { return mBuf.length; }
public int getNum() { return mSP; }
public boolean isFull() { return mSP == mBuf.length; }
public boolean isEmpty() { return mSP == 0; }

public void push(Object x) {
if (!isFull()) {
mBuf[mSP++] = x;
}
}

public Object top() {
Object obj = null;

if (!isEmpty()) {
obj = mBuf[mSP-1];
}
return obj;
}

public Object pop() {
Object obj = null;

if (!isEmpty()) {
obj = mBuf[--mSP];
}
return obj;
}
}

上のプログラムは任意のオブジェクトを格納できるスタッククラスです。
int型の値はオブジェクトではないので、このObjyStackクラスに格納することができない。
整数値をこのObjStackクラスに格納する方法を教えて下さい。

class ObjStack {
private Object[] mBuf;
private int mSP;

public ObjStack(int size) {
mSP = 0;
mBuf = new Object[size];
}

public int getSize() { return mBuf.length; }
public int getNum() { return mSP; }
public boolean isFull() { return mSP == mBuf.length; }
public boolean isEmpty() { return mSP == 0; }

public void push(Object x) {
if (!isFull()) {
mBuf[mSP++] = x;
...続きを読む

Aベストアンサー

> よろしければ、どのように使用すればよいのか詳しく教えてくれませんか?お願いします。

例えば、

public void intPush(int intVal) {
 ObjStack objStack = new ObjStack(100);
 Integer val = new Integer(intVal);

 objStack.push(val);
}

でスタックにプッシュすることができます。
ポップする場合には、例えばこんな感じでしょうか?

public int intPop() {
 Object obj = objStack.pop();

 if (obj instanceof Integer) {
  return ((Integer)obj).intValue();
 }
}

参考URL:http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Integer.html

QSMAPの昔のライブビデオを探してます!

14~15年くらい前の東京ドームライブ(会場の記憶も怪しいのですが…)だったのですが、(1)そのときのビデオが販売されているのか(2)ビデオのタイトルを教えていただきたいのです。唯一の手がかりは【開演時間が過ぎた辺りから黒いキャップと黒っぽいスタジャンと黒のパンツのスタッフと思われる人たち(顔はキャップを目深にかぶっているのでわからなかった)がモップなどを持って、ステージ上を掃除し始めたのです。まだ照明も落ちなかったので、観客は「準備」くらいにしか思わず話などしていたのです。しかし、突然大音響で音楽が流れその人達がキャップやスタジャンを脱ぐと実はSMAPのメンバーだったのです!】という私の記憶です。このときの映像がどうしても見たくて探したのですが、パッケージからはこの時のライブなのかわからず周りもここ数年の間にファンになった人ばかりで昔のことはわからないといいます。ぜひぜひ覚えている方がいらっしゃったら教えてくださいませ!よろしくお願いいたします!

Aベストアンサー

初めまして、今晩は。

お探しのものか分からないのですが…、

1992年1月のSMAPファーストライブは、
ビデオ・DVD共に発売されていますよっ^^

【「やってきましたお正月 !!」コンサート】です!
http://images-jp.amazon.com/images/P/B0000VORB2.09.LZZZZZZZ.jpg
 ・1992/03/14発売 VHS
http://www.amazon.co.jp/exec/obidos/ASIN/B00005GZIA/qid=1138211530/sr=1-3/ref=sr_1_2_3/249-6365671-3873141
 ・2003/12/24発売 DVD
http://www.amazon.co.jp/exec/obidos/ASIN/B0000VORB2/qid=1138212087/sr=1-16/ref=sr_1_2_16/249-6365671-3873141

その次でしたら…、

1994年8月29、30日のライブで、
【SEXY SIX SHOW】です。
http://images-jp.amazon.com/images/P/B00005GZFQ.09.LZZZZZZZ.jpg
 ・1994/11/11発売 VHS
http://www.amazon.co.jp/exec/obidos/ASIN/B00005GZFQ/qid=1138211530/sr=1-7/ref=sr_1_2_7/249-6365671-3873141
 ・2003/12/24発売 DVD
http://www.amazon.co.jp/exec/obidos/ASIN/B0000VORBW/qid=1138212443/sr=1-18/ref=sr_1_2_18/249-6365671-3873141

お役に立てればイイのですが・・・^^

初めまして、今晩は。

お探しのものか分からないのですが…、

1992年1月のSMAPファーストライブは、
ビデオ・DVD共に発売されていますよっ^^

【「やってきましたお正月 !!」コンサート】です!
http://images-jp.amazon.com/images/P/B0000VORB2.09.LZZZZZZZ.jpg
 ・1992/03/14発売 VHS
http://www.amazon.co.jp/exec/obidos/ASIN/B00005GZIA/qid=1138211530/sr=1-3/ref=sr_1_2_3/249-6365671-3873141
 ・2003/12/24発売 DVD
http://www.amazon.co.jp/exec/obidos/ASIN/B0000VOR...続きを読む

Q親クラスのメソッドを別のパッケージの子クラスでオーバーライドするときについて

早速ではございますが、質問をさせていただきます。
親クラスのパッケージとは異なるパッケージに子クラスが
あるとき、子クラスが親クラスのメソッドをオーバーライ
ドするときに、親クラスのメソッドのアクセス修飾子を
publicかprotectedにしなければコンパイルエラーになり
ます。それはなぜなのでしょうか?
どうかご教授のほどよろしくお願いします。

Aベストアンサー

……できれば、質問し直す時は分けて下さいね。いつまでたっても収束しませんから。


質問1への回答
 この場合、Mainと親クラスの関係だけが問題となります。
 親クラスのメソッドfunc()を、別パッケージのMainがアクセスできるのは、前の私の回答を順に当てはめればpublicしか無い事に気づくはずです。
 子クラスのオーバーライドの有無は関係ありません。Mainはインスタンスが親であれ子であれ、親クラスのクラス定義に従ってfunc()を読んでいるだけです。

質問2への回答
 それが多態性というものです。Oya.foo()はあくまでOya.func()を読んでいるに過ぎません。それがabstractで、実は実態がないものだとか、そういうのは関係ありません。なぜなら、実際にfoo()がfunc()を呼び出している時点で、なんらかのインスタンスが生成されている筈で、そのインスタンス生成の条件はクラスやメソッドがabstractでない事だからです。
 そうやって、「実態がある」と保証されたインスタンスのfunc()を呼んだ際には、オーバーライドによって実際のインスタンスを定義する子クラスkoのfunc()が呼び出されます。

……できれば、質問し直す時は分けて下さいね。いつまでたっても収束しませんから。


質問1への回答
 この場合、Mainと親クラスの関係だけが問題となります。
 親クラスのメソッドfunc()を、別パッケージのMainがアクセスできるのは、前の私の回答を順に当てはめればpublicしか無い事に気づくはずです。
 子クラスのオーバーライドの有無は関係ありません。Mainはインスタンスが親であれ子であれ、親クラスのクラス定義に従ってfunc()を読んでいるだけです。

質問2への回答
 それが多態性というも...続きを読む

Qlinux(CentOS)でパッケージアップデート

linux(CentOS)でパッケージをアップデートする際に

#yum list updatesでアップデート可能なパッケージ一覧を表示すると

パッケージによってリポジトリ(Repository)が
Packege      Repository
パッケージA    updates
パッケージB    base

とあupdatesとbaseと表示されているものがあるのですが、どのように違うのでしょうか?

updatesもbaseもどちらともアップデート可能なパッケージですよね?

ド素人ですみません。

Aベストアンサー

updatesには、全てのパッケージが置いてあるわけではありません。
例えば、現在の最新版はCentOS 5.6ですが、その全てのパッケージがbaseにあり、その中で5.6公開後にアップデートされたものがupdatesに置いてあります。
なお、これらが全てではなく、extrasなどのリポジトリもあれば、いろいろな人が公開しているリポジトリもあります。

QDateクラスへ格納

jdk1.6を使用しています。

ユーザに年月日を指定してもらい、それぞれint型に格納。

DBの属性date型に格納する為に
Date a = new Date();
a.setYear(intYear);
をしようと試みましたが
setYearはDeprecated属性で推奨されていないもよう。

どのようにDateクラスに格納すればよろしいのでしょうか。

Aベストアンサー

Calendar使いましょう。

int intYear = 2009;
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_YEAR, intYear);
Date date = cal.getTime();

QJava「デフォルトのパッケージ」の意味が分かりません。

 Java「デフォルトのパッケージ」の意味が分かりません。
http://takeoba.cool.ne.jp/java/packageDeclaration.htm


パッケージ宣言しないプログラムは、デフォルトのパッケージに割り当てられます。

と書かれているのですが「デフォルトのパッケージ」の意味が分かりません。
 Googleで「Java デフォルトのパッケージ」を検索してもヒットする件数は多いのですが「デフォルトのパッケージ」の意味そのものに触れたものがなかなか見つかりません。
 Javaに詳しい方、よろしくお願いいたします。

Aベストアンサー

なんというか、パッケージを「クラスファイルの保存場所」と思われてしまうとまずいので、微妙に追加を。

まず、パッケージというのは何のためのものか、それをご理解ください。これは、クラスファイルの保存場所に関するものではありません。パッケージというのは、クラスに名前空間を与え管理するためのものです。わかりやすくいえば、ファイルをフォルダで分類して整理できるのと同じように、すべてのクラスを、場所を指定して管理できるようにするための仕組みのことです。

Javaでは、クラス名を記述してプログラムを動かしますね? では、同じクラスが複数あったらどうなるでしょうか? Javaはそれらを区別することができなくなります。が、実質問題として、さまざまな人間がすべて異なる名前でクラスを定義するとは思えません。そこで、クラスを保存する場所を階層的に指定し、「このクラスは、jp.hoge.hogeという場所にあるクラスですよ」ということを示して扱えるようにしたわけです。これが「パッケージ」です。

実際、標準で付いてくるクラスを見ると、java.awt.Buttonというように、パッケージの中に収めてあることがわかります。が、こうなると今度は「ちょっとプログラムを試しに動かしたいのに、わざわざ他とは重複しないパッケージを定義して動かさないといけないのは面倒だ」ということになります。そこで、「それじゃあ、何もパッケージを指定しないで作ったクラスは、仮にデフォルトパッケージというパッケージを用意して、その中にあるという扱いにしよう」ということで考えられたのがデフォルトパッケージです。

パッケージを指定したクラスは、(アーカイブ化していなければ)それぞれの階層がフォルダとして用意された形で保存されます。例えば、jp.hoge.Testならば、「jp」フォルダ内に「hoge」フォルダがあり、その中に「Test.class」が保存されます。が、パッケージ指定していなければ、(階層がありませんから)フォルダなどなく、その場に保存されます。classファイルのある場所が、デフォルトパッケージのクラスが保管されている場所と判断されるわけです。が!「保存されているフォルダがパッケージのことだ」とは思わないでください。これは、ただの「現象」です。たまたま、現在のJavaはそういう形でファイルを保存するようになっている、というだけのことです。パッケージは、あくまで「プログラム上に用意される空間」です。ファイルの保管場所のことではありません。

デフォルトパッケージというものが用意されている理由は、「Javaのクラスは、必ずどこかのパッケージに置かれなければならない」からです。パッケージのないクラスは存在できません。なぜなら、Javaの言語仕様に、パッケージの存在がかかわっているからです。例えば、クラスを定義するのに「public」をつけますが、これが付いていないと「同一パッケージ内についてpublic」と扱われます。つまり、「パッケージ内のクラスとパッケージ外のクラス」で利用が異なるような仕様が文法に既に用意されているのです。このため、必ずクラスはどこかのパッケージに属さなければなりません。それで、まったくパッケージを指定していないものも、デフォルトパッケージというパッケージに所属するという形で扱われるようになっているのです。

なんというか、パッケージを「クラスファイルの保存場所」と思われてしまうとまずいので、微妙に追加を。

まず、パッケージというのは何のためのものか、それをご理解ください。これは、クラスファイルの保存場所に関するものではありません。パッケージというのは、クラスに名前空間を与え管理するためのものです。わかりやすくいえば、ファイルをフォルダで分類して整理できるのと同じように、すべてのクラスを、場所を指定して管理できるようにするための仕組みのことです。

Javaでは、クラス名を記述し...続きを読む

Q抽象クラスとオブジェクトを格納する配列(java)

独習java第4版でわからない所があります。

abstract class Widget {
String color;
abstract int getMass();
public String toString() {
return getClass().getName() + ": " +
color + ", " + getMass();
}
}

class WidgetA extends Widget {
final static int MASS = 4;

WidgetA(String color) {
this.color = color;
}

int getMass() {
return MASS;
}
}

class WidgetB extends Widget {
final static int MASS = 1;

WidgetB(String color) {
this.color = color;
}

int getMass() {
return MASS;
}
}

class WidgetC extends Widget {
final static int MASS = 5;

WidgetC(String color) {
this.color = color;
}

int getMass() {
return MASS;
}
}

class WidgetD extends Widget {
final static int MASS = 17;

WidgetD(String color) {
this.color = color;
}

int getMass() {
return MASS;
}
}

class WidgetTypes {
static int NUMWIDGETS = 6;

public static void main(String args[]) {
// 部品を格納する領域を宣言して割り当てる
Widget widgets[] = new Widget[NUMWIDGETS];

// 部品を作成する
widgets[0] = new WidgetC("Red");
widgets[1] = new WidgetA("Green");
widgets[2] = new WidgetD("Yellow");
widgets[3] = new WidgetB("Magenta");
widgets[4] = new WidgetA("Black");
widgets[5] = new WidgetC("White");

// 部品を処理する
int totalMass = 0;
for(int i = 0; i < NUMWIDGETS; i++) {
Widget w = widgets[i];
System.out.println(w);
totalMass += w.getMass();
}

// 総重量を表示する
System.out.println("Total mass = " + totalMass);
}
}

これはある問題の解答ですが、僕にはどうしても理解出来ない部分があります。
mainのforループ内で

Widget w = widgets[i];

totalMass += w.getMass();

となっています。
この仕組がわかりません。
まず Widget w = widgets[i] でWidget型の変数wにWidget型のwidget[i]を代入しているのにw.getMass()がエラーにならない理由がわかりません。(Widgetクラスは抽象クラスなのにwがWidgetクラスのインスタンスになっている?)
これは 抽象メソッド( abstract int getMass() ) があるためでしょうか?

ちなみにWidgetクラスとそのサブクラスからこの抽象メソッドを削除したらコンパイルエラーが出ました。
ではなぜ抽象クラスの抽象メソッドから、そのサブクラスのメソッドまで範囲が伸びるのでしょうか?
どういう仕組でしょうか?

この質問を書きながら思ったのですが、どうも配列の仕組みや抽象クラス・メソッドの仕組み、「オブジェクト」と「インスタンス」の違いがよくわかってないようです。
多分問題の本質はそこにあると思うんです。

駄文で申し訳ないです。
よろしくお願いします。

独習java第4版でわからない所があります。

abstract class Widget {
String color;
abstract int getMass();
public String toString() {
return getClass().getName() + ": " +
color + ", " + getMass();
}
}

class WidgetA extends Widget {
final static int MASS = 4;

WidgetA(String color) {
this.color = color;
}

int getMass() {
return MASS;
}
}

class WidgetB extends Widget {
final static int MASS = 1;

WidgetB(String color) {
this.color =...続きを読む

Aベストアンサー

質問者さんがわかっていないのは「ポリモーフィズム」ですね。それはさておき、

> Widget w = widgets[i] でWidget型の変数wにWidget型のwidget[i]を代入しているのに

widgets[i]に入っているのはWidgetクラスのインスタンスではなく、
WidgetCやWidgetAやWidgetDクラスのインスタンスです。

具体的には

widgets[0] = new WidgetC("Red");

としているのですから、forループの最初(i=0)の

Widget w = widgets[i];
System.out.println(w);
totalMass += w.getMass();

でwに代入されるのは、WidgetCクラスのインスタンスです。
w.getMass()で呼ばれるのもWidgetCクラスのgetMass()です。

Qシステム(プログラム)のパッケージについて

システム(プログラム)のパッケージについて教えてください。
商品パッケージってどういったもののことなのでしょうか?

Webシステムを例にとってみると
一般公開されているWebシステムがあると思うのですが(あまぞん、や、ぐーぐるなど)そういったシステムはパッケージシステムとは言えないのでしょうか?

何をもってしてパッケージシステム(パッケージ商品)と呼ぶのでしょうか?
そして、パッケージ化するメリットには一体どんなものがあるのでしょうか?

Aベストアンサー

「パッケージ」とは売り物のことです。

AmazonやGoogleのシステムは独自開発なのでパッケージではありません。
売られているパソコンゲームソフトなどはパッケージです。
業務用途だと、テレビでCMも流れている「勘定奉行」とかは中小企業の財務会計用のパッケージです。「今まで紙やExcelで会計処理をやっていたけど、システム化したい」というときに買ってきます。ま、買っただけでは使いこなせないので代理店のサポート付きで買ったりするわけですが。もちろん、お金があれば、ソフト開発会社に発注して独自システムを作ってもいいのですが、お金が1桁か2桁くらい違います。

メリット:
ソフト会社としては、1つ作ってたくさん売れれば売れるほど儲かる。
利用者としては、特注よりずっと安くできる。

QStringクラスの変数の格納アドレスを知りたい

いつもお世話になります。

Javaの文字列クラスのStringは参照型ですが、この変数の値が格納されたアドレスを知るためにはどうすればよいのでしょうか。eclipse上で、文字列の変数に対してtoString()を試してみたところ、格納されている文字列が出力されました。

※自作したクラス、たとえばtest.MyClassだとすれば、toString()を用いれば「test.MyClass@01234」というような表記で出力されますが、このような情報を取得するにはどうすればよいでしょうか。

宜しくお願いします。

Aベストアンサー

「test.MyClass@01234」の@以降の部分は変数の格納アドレスを表していませんし、そもそもStringの格納アドレスを知って何をしたいのでしょうか。
本当にアドレスを知りたいのであれば、一番簡単なのはJNIを使うことだと思います。


人気Q&Aランキング

おすすめ情報