マンガでよめる痔のこと・薬のこと

javaを勉強しているのですが、javaを勉強して、自分がいったいどんなものを作って行きたいのかイメージが湧いてきません。携帯などでできるゲームなどもjavaで作れるようなのですが特にゲーム作りに興味はありませんし。

自分がどのようなものを作りたいかはっきりした目的が持ちたいのですが、javaを勉強してどんなものが作れるようになるのかいまいち解からないのです。javaっていったいどんなものを作るのに役に立つのでしょうか?
教えてください! お願いします!! 

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

A 回答 (4件)

Javaの学び始めのころは、何を作っても勉強になると思います。


何でもいいので、興味を惹かれるものを作ればいいと思います。
でも「何でもいい」っていわれても困ってしまいますよね。

本格的なものは初心者が一人で作るには難しいので、
こんなものはどうでしょうか。

携帯電話で動く電卓アプリ
今の携帯電話には元から電卓機能がついていますが、操作性とか結構気に入らないことがあるので、自分の思い通りに使いやすい電卓を作る。

ファイル名一括変更ツール
デジカメの写真ファイルに連番をつけたり、ファイル名を変更するツール。似たようなフリーソフトがたくさんありますが、自分の使い勝手のいいものを自分で作ります。

Eclipseプラグイン
Javaの開発環境としてEclipseを使っているのですが、これはプラグインをダウンロードしたり自分で作成することで機能拡張できるので、自分でほしいと思った機能を自分で作ることができます。

Robocode
プログラミングゲームと言われるもので、画面上で戦車を動かして対戦させるゲームです。戦車は、人がコントロールするのではなく、あらかじめ動作をJavaでプログラムしておいて動かします。AIをつんだ戦車同士の戦いと言うことになります。そのAIをJavaでプログラムします。
    • good
    • 1

SEをしていますが、


普通に仕事をしている上で
Javaを選択したり、
C言語を選択したり、
VBを選択したり
用途に応じた言語を使用します。
JavaはOS非依存の言語です。
しかも設計思想が
かなり難易度の低いものとなっているため、
初心者向けとも言える言語です。
しかしながら、
Javaを知っていると、
結構他の言語に対応できるので、
覚えておいて損は無いと思います。
    • good
    • 1

Javaと言っても適用範囲が幅広いですね。


CもC++も適用範囲が幅広いですが。。。

ま、実体験から言って、Javaの案件で多いのは、Webサーバー構築でしょうね。
なので、J2EE、Servlet、JSP、Jakartaなど単語を探ってみると良いと思います。
ただ、Webサーバー構築そのものは難しいことではないのですが、HTTP通信とか、HTMLとか、データベースとか前提知識が必要になります。もっとも「鶏が先か卵が先か」な話なので、徐々に勉強していってください。
    • good
    • 2

作りたいものがないのにjavaを勉強してるのですか?


ではなぜ勉強しているのでしょう?
学生さんでjavaの授業があるから?
社会人さんで仕事で使うことになったから?
ただなんとなく?
このような理由だったらこの質問された意味がわかるのですが…。
そうでなければ何かしら「javaを選んだ理由」というものがあるのですよね?
それが自分の作りたいもの、やりたいことになりませんか?

何が作れるか…については自分も全てを知っているわけではないのですが…
JavaのAPIリファレンスを読んでみてはいかがでしょうか?
1つ1つのパッケージの説明を読めばできることがわかります。
さらにそれを組み合わせればもっといろんなことができます。
javaをインストールしてサンプルなどを見てみるのもいいかと思います。

あと
javaはOSに依存しない。
という特徴がありますので、WindowsでもMacでもUNIXでも動きます。(OS対応のJVMがあれば。)
誰々のPCのOSは何々だから…といったことを考えずにアプリを作ることが可能です。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

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

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

Qjavaでゲームを作りたいです。初めてです。ぜんぜん知識もありません

javaでゲームを作りたいです。無謀ですが・・・
どうやって作ればいいのでしょうか?
その前にどんなゲームが作れるのでしょうか?

Aベストアンサー

回答ありがとうございました。
・・・脱帽です。はっきり言ってプログラミングやったことないのです。

そう思っていましたよ。でも、ゲームに目をつけたのはなかなかいいアプローチです。ただし、僕は二、三年Javaをかじりまくって、やっと文法を覚えてそれからいろんなアプリケーションを作っています。ゲームづくりはもう少し先の話ではあるかもしれないけれども、とにかくいい勉強になり結構面白いです。かなりいい訓練になるはずです。だから、先見の目のすごさに脱帽しています。逆にすばらしいと思いましたよ。(^^\

>このような言語(?)なんか英語みたいなのをどこに書けばいいのかわかりま>せんし、コンパイルしようとしても原因がわからず作業が中止になったり>とてもできそうにありません。

最初は誰だってそうなんですよ。例えば僕は二年間もクラスって何かわからなくて、上級者の人に聞いたら一瞬で「えー、そんなことだったの?」とはとが豆鉄砲を食らったようになってしまったのを覚えているのです。それぐらい僕は無知でした。誰だって、一年ぐらいはコンパイルがなかなか通らなくてその原因は何かなんていうのはざらですが、要するにそういうときでも絶対に自分をほめてあげればいいのですよ。よくコンパイルなんてやったな~なんていうふうにね。(笑)

よく特別な人がプログラムを書いているような言われ方をする人や、そうしたことが特殊だという社会的な風潮があるのですけれども、いたって普通です。機械は二進法(電気が+と-しかないから、例えば数値で言えば1と0)しかわからないみたいですし、右といえば右にしか行きません。エラーなんてむしろ人間的でいいなと思いますよ。

ただ解決方法がわからない以前に、実現方法がわかりたいのが人情です。だから、ものすごく簡単な入門書で最初に勉強するとものすごく良いんです。僕は最初千円の本当に簡単な入門書からやりました。もちろん、上級者のアドバイスでそうしたのです。


>やっぱりまだ自分には向いていないのでしょうか?

将来的には向いているかもしれませんよ。僕はたぶんあなたよりもひどかった(笑)かもしれない。確かにいきなりは作れないんです。それは僕も一緒です。でも、少しでも勉強したり、プログラミングをしたりしたら、どんなことでも良いから、進歩したことになるから、自分を信じて、自分をほめてあげてください。あなたは少なくとも今面白いことをやろうとした。面白いことに向かって精進しようとこうして質問コーナーにまできちんと出向いた。立派だと思いますよ。(笑)勉強していると適正が出てくると思います。本当に僕は最初から書けた人なんて誰もいなかったんだと思うのですが。僕も偉いしなくてもいい苦労までしたもんですよ。(笑)

ま、とにかく思いつめるのは何にもなりません。せっかくのあなたの努力が無駄になるばかりか、あなた自身をつまらなくしてしまうかもしれません。コンパイルなんてものは百回のうち一回通ればそれでパソコン上ではソフトは動くことになっているのですから。あなたは何も心配することはありません。

今もしも目一杯頑張ってしまっているのだったら、むしろ少しゆっくり目に、わからなかったらこういうところに来て質問をしたりしていると良いかもしれませんよ。

まずは簡単なことからはじめましょう。でも、標準出力ができると、いろいろなことができるようになるので、続けられるのです。ほんの少し、ありの一歩の進歩でいいから、とにかく自分をほめてほめてほめまくることが大事なのです。やる気はものすごく感じていますよ!!!

みんな自分をほめながら、適当に好きなことをやってきただけです。でも、学校で教えてもらうのも一つの手ですよ。

あなたはすごくやる気が感じられた。だから、僕も教えていてとても気持ちが良かった。あなたが僕の書いた文書を読んでくれると信じて昨日も机の上でスヤスヤ眠りこけるまでワープロを打った。(笑)

とにかく最初は安くて分かり易い入門書がお勧めです。すごい簡単なことからできるようになって、基礎的な簡単な知識を身につけるといいでしょう。

もう僕は心配していないのです。きっと大丈夫ですよ。それにまたわからなくなったら聞きに来たらいいと思いますよ。みんなきっと親身に教えてくれるはずです。みなが一応に通ってきた道ですから、僕もそうですがみな苦労しているから、初心のころのことをあなたと同じ体験をみな体験してきているはずです。

初めからできる人なんていないから、気にしないでゆっくりじっくりと楽しんで、頑張ってくださいね。心から応援していますよ。ゆっくり、確実に、基礎をつくり、はしらを立てて、屋根を載せる。Javaで言うならば、最初に
標準出力でHelloWorld
変数
メソッド
クラス
制御文で
if分岐
for文ループ
switch文(選択)
while文
do
whiel文
try catch節(例外)
スレッド
フレームワーク
API
object指向(クラスやオブジェクトをものとして考える)
カプセル化・継承・多態性
Javaプログラムの基本
コレクションクラス
後はWEBアプリケーション開発にサーブレットに移行していく場合もありますが、まずは、簡単な上記を一通りやっておきましょう。すべて完璧でなくても良いですよ。すべて完璧にできる人はいませんからね。

だんだんリファレンスをひいたりすることができるようになるといろいろ面白くなってくると思うのです。人それぞれですが、メソッドがわからなくなるなんてしょっちゅうですから、僕はリファレンスから離れることはできません。でも、みんなそうだと思います。

とにかくあせらずこつこつと努力していくと良いと思いますよ。なれるのはゆっくりと、ほんの少しずつで良いのです。

あと、くれぐれも少しでも何かやったら、自分をほめてあげてくださいね。

回答ありがとうございました。
・・・脱帽です。はっきり言ってプログラミングやったことないのです。

そう思っていましたよ。でも、ゲームに目をつけたのはなかなかいいアプローチです。ただし、僕は二、三年Javaをかじりまくって、やっと文法を覚えてそれからいろんなアプリケーションを作っています。ゲームづくりはもう少し先の話ではあるかもしれないけれども、とにかくいい勉強になり結構面白いです。かなりいい訓練になるはずです。だから、先見の目のすごさに脱帽しています。逆にすばらしいと思いま...続きを読む

Qシンボルが見つかりませんというエラーが理解できません。

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Image[3];
Thread t;
int index1 = 0;
int index2 = 0;
String msg = "";
String msg1 = "";

boolean state = false;
Button b1 = new Button("ぐー");
Button b2 = new Button("ちょき");
Button b3 = new Button("ぱー");

public void init(){
for(int i = 0; i<=2; i++){
img[i] = getImage(getDocumentBase(),"hanabi" + (i+1) + ".JPG");
}
add(b1);
add(b2);
add(b3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
msg1 = "結果は・・";

}

public void paint(Graphics g){
g.drawImage(img[index1],350,30,this);
g.drawImage(img[index2],695,30,this);
g.drawString("コンピューター",420,300);
g.drawString("あなた",800,300);
g.drawString(msg,630,320);
g.drawString(msg1,550,320);
}

public void start(){
state = true;
t = new Thread(this);
t.start();

}

public void run(){
while(state){
index1++;
if(index1 == 3){
index1 = 0;
}
index2++;
if(index2 == 3){
index2 = 0;
}
repaint();
try {
Thread.sleep(60);
}catch(InterruptedException e) { }
}
}

public void actionPerformed(ActionEvent e){
if(state == false) {
start();
return;

}
state = false;
if(e.getSource() == b1) {
msg = "ぐー";
index2 = 0;
}

else if(e.getSource() == b2){
msg = "ちょき";
index2 = 1;
}

else if(e.getSource() == b3){
msg = "ぱー";
index2 = 2;
}
check();
repaint();
}

public void check() {
if(index1 == index2) msg ="あいこ";


else if (index1 == 0) {
if(index2 == 2) msg="あなたの勝ち";
else msg ="あなたの負け";
}

else if(index1 == 1) {
if(index2 == 0) msg="あなたの勝ち";
else msg="あなたの負け";
}

else if(index1 == 2) {
if(index2 == 1) msg="あなたの勝ち";
else msg="あなたの負け";
}

}
}

以下のようなじゃんけんゲームのプログラムを書いたのですが、「シンボルが見つかりません。」というエラーが表示されるのですが、エラーの意味が理解できず、解決できません。どこが間違っているのか教えていただけませんか。

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.File;

public class janken extends Applet
implements Runnable, ActionListener {
private static final int EXTERNAL_BUFFER_SIZE = 128000;

Image image[] = new Imag...続きを読む

Aベストアンサー

「シンボルを見つけられません。」というエラーの下に何か表示がありませんでしたか?そこにヒントがあると考えられます。
シンボルを見つけられませんといエラーが表示される主な理由は4つあります。
(1)クラス、メソッド、変数などの綴りミスや定義していない変数を使用している可能性がある。
(2)コンストラクタを呼び出すときに、newを忘れている可能性がある。(3)公開されていないメンバーを呼び出している可能性がある。
(4)必要なimport文を記述し忘れている可能性がある。
ここでのあなたのエラーは(1)番ではないでしょうか?上記ではimageとなっている変数がimgになっていますね。
これはエラー表示をよく見ることで意外と簡単に解決できるのです。
ゆっくり丁寧にエラー表示を見るように心がけることが大事ですよ。

Qpublic static void main (String args[])

基本すぎて申し訳ありませんが、
public static void main (String args[])とはどういう意味を持っていますか?
教えてください。。

Aベストアンサー

staticとかの意味はNo1の方の説明以外にありません。

mainは最初に実行されるメソッドという説明がされますので、「クラスを実行する時の引数とは?」と引っかかっているのかもしれませんね。
これはコマンドライン引数と呼ばれます。

たとえば、次のプログラム

public class ArgsTest{
  public static void main(String[] args){
    System.out.println(args.length);
    for(int i = 0 ; i < args.length ; i++){
      System.out.println(args[i]);
    }
  }
}

これを
>java ArgsTest abcde fghij(エンター)
として実行するとabcdeとfghijが引数となります。

ちなみに、mainはpublicでstaticなメソッドなので、
public class ArgsTest2{
  public static void main(String args[]){
    tamesi();
  }
  void tamesi(){
    String[] test = {"abcde","fghij"};
    ArgsTest.main(test);
  }
}
のように、外部のクラスからクラス名.mainで呼び出せます。(この2つのプログラムは、私が悩んだ時に試しにつくったものです)

ちなみにargsはarguments(=引数)の略で、mainの引数として、よく使われます。
argvのほうはargument valueの略です。C言語を使っていた人の中にはargvを使う人がいるかもしれません。

staticとかの意味はNo1の方の説明以外にありません。

mainは最初に実行されるメソッドという説明がされますので、「クラスを実行する時の引数とは?」と引っかかっているのかもしれませんね。
これはコマンドライン引数と呼ばれます。

たとえば、次のプログラム

public class ArgsTest{
  public static void main(String[] args){
    System.out.println(args.length);
    for(int i = 0 ; i < args.length ; i++){
      System.out.println(args[i]);
    }
  }
}

...続きを読む

Qjava 電卓のプログラム

或る程度まで進みましたが、
ソースコードが分からず困っています;;

こんな問題なのですが・・・

課題1
以下の要件を満たす電卓のプログラム
Calculatorクラスを作成し、ソースコードを
示せ。

1.最初に標準入力から文字を1文字入力し
計算の種類や動作を決定する。
必要な入力文字と動作の種類の対応を下記に示す。
入力文字  動作
  +    数値a,bを受け取りa+bの結果を表示する
  -    数値a,bを受け取りa-bの結果を表示する
  *    数値a,bを受け取りa*bの結果を表示する
  /   数値a,bを受け取りa/bの結果を表示する
      ただし、b=0の時は「Infinity」と表示する
  !    数値aを受け取りaの階乗を計算し表示する
  q   終了する
2. 計算の種類が決定した後、標準入力から計算に必要な数字を入力する
3.計算が終了した後、再度、標準入力からの動作の
種類を受け付ける。

こんな感じです。

で、一応ここまで進んでいます。
import java.io.*;
public class Calculator {
public static void main(String[] args) throws IOException {
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
int i = 0;
int answer = 1;
System.out.println("+、-、*、/、!、qから選んで入力してください");
String s = buf.readLine();
System.out.println("数字を二つ入力してください");
int a = Integer.parseInt(buf.readLine());
int b = Integer.parseInt(buf.readLine());
if (s.equals("+")) {
System.out.println(a + b);
}
if (s.equals("-")) {
System.out.println(a - b);
}
if (s.equals("*")) {
System.out.println(a * b);
}
if (s.equals("/")) {
System.out.println(a / b);
}
if (s.equals("!")) {
System.out.println("階乗の計算をします。数字を一つ入力してください");
while (i < a) {
i++;
answer = i * answer;
System.out.println("a!=" + answer);
}
}
if (s.equals("q")) {
//終了する処理
}
}
}

とりあえず、自分でなんとか・・・。
後、残ったのは割り算で
bに0が入力された時にInfinityと表示するのと、
階乗と終了する処理・・・・。
そして、終了の命令があるまで計算を続ける
ソースを書く・・・。

ここからどのようにすればいいのでしょうか・・・
教えてください。お願いします!

或る程度まで進みましたが、
ソースコードが分からず困っています;;

こんな問題なのですが・・・

課題1
以下の要件を満たす電卓のプログラム
Calculatorクラスを作成し、ソースコードを
示せ。

1.最初に標準入力から文字を1文字入力し
計算の種類や動作を決定する。
必要な入力文字と動作の種類の対応を下記に示す。
入力文字  動作
  +    数値a,bを受け取りa+bの結果を表示する
  -    数値a,bを受け取りa-bの結果を表示する
  *    数値a,bを受け取りa*bの結果を表示...続きを読む

Aベストアンサー

まず標準入力から1文字取得します。

System.out.println("+、-、*、/、!、qから選んで入力してください");
String s = buf.readLine();
String answer = "";

次に入力された種類によって必要な数だけ標準入力から数字を取得します。
if( s.equals("+") ) {
int a = Integer.parseInt(buf.readLine());
int b = Integer.parseInt(buf.readLine());
answer = Integer.toString(a + b);
}
if( s.equals("-") ) {
int a = Integer.parseInt(buf.readLine());
int b = Integer.parseInt(buf.readLine());
answer = Integer.toString(a - b);
}
// 省略
if( s.equals("/") ) {
int a = Integer.parseInt(buf.readLine());
int b = Integer.parseInt(buf.readLine());
if( b == 0 ) {
answer = "Infinity";
} else {
answer = Integer.toString(a / b);
}
}
if( s.equals("!") ) {
int a = Integer.parseInt(buf.readLine());
int value = 0;
for( int i = 0; i < a; i++ ) {
value *= (i + 1);
}
answer = Integer.toString(value)
}
System.out.println(answer);

answerをStringにすることで"Infinity"も出力することができます。
ただし全ての条件でInteger.toStringを行わないといけませんが。


qを入力されたときに終了する
例えば以下のメソッドでは return int; を必ず書きます。
public int sum(int a, int b) {
return a + b;
}
ここで戻り値がvoidのメソッドのときに途中で終了したい場合は
public void ave(int a, int b) throws Exception {
if( b == 0 ) {
return; //戻り値なし
}
System.out.println(a / b);
}

return;で処理を終了します。

つまり
if( s.equals("q") ) {
System.out.println("処理を終了します。");
return;
}
となります。

最後に終了の命令があるまで計算を続けるには"q"が入力されるまで無限ループさせればいいので
while( true ) {
System.out.println("+、-、*、/、!、qから選んで入力してください");
// 省略
System.out.println(answer);
}

まず標準入力から1文字取得します。

System.out.println("+、-、*、/、!、qから選んで入力してください");
String s = buf.readLine();
String answer = "";

次に入力された種類によって必要な数だけ標準入力から数字を取得します。
if( s.equals("+") ) {
int a = Integer.parseInt(buf.readLine());
int b = Integer.parseInt(buf.readLine());
answer = Integer.toString(a + b);
}
if( s.equals("-") ) {
int a = Integer.parseInt(buf.readLine());
int b = Integer.parseInt(buf.readLine(...続きを読む

QJAVAのDouble型の小数点以下の値の取扱について

JAVAのDouble型の小数点以下の値の取扱について

JAVA勉強中の超初心者です。
Double aaa = 1.0;
Double bbb = 1.1;

という値があり、これを最終的にstring型に変換してテキストとして表示しています。
当たり前ですが、aaaなら1.0、bbbなら1.1と表示されます。
でもできれば
aaa→1
bbb→1.1
という風に小数点以下が0の場合は表示しないようにしたいのですがどのようにしたらよいか悩んでおります。
単純なことかもしれませんが宜しくお願いします。

Aベストアンサー

これではだめですか?

Double aaa = 1.0;
Double bbb = 1.1;

DecimalFormat format = new DecimalFormat("0.#");
System.out.println(format.format(aaa)); //1
System.out.println(format.format(bbb)); //1.1

http://java.sun.com/javase/ja/6/docs/ja/api/java/text/DecimalFormat.html

Qinterface,extend,implementのちがい

お世話になります、

Javaを勉強しているのですが、
interface,extend,implementの使い分けがわかりません。

私の解釈としては、
(1)interfaceは、グローバル変数の定義、グローバルメソッドの定義(実装はしない)。

(2)extendは、extendクラスを親クラスとして親クラスの機能を使用できる。

(3)implementは…,implementもextendと同じような意味だと解釈しているんですが、違う点は、implementで定義してあるメソッドは、使用しなくても、実装しなければならないという点でしょうか?

とにかくこの3つのを使い分けるコツとかあれば教えてください。
よろしくお願いします。

Aベストアンサー

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば、getStringLength()メソッドなどが
あったほうが良いでしょうか。
このgetStringLength()メソッドは、2バイト文字も1バイト文字も「1文字」
と数えてくれると言う点で、まさに、日本語クラス用のメソッドだと言えるでしょう。

例えば、Java的に記述すると、、、
class Japanese {
public int getStringLength() {
  ・・・
return strlength;
 }
 ・・・
}

class TextField {
・・・
}

class JTextField extends TextField, extends Japanese {
・・・・
}

C++ではそのように実装するでしょう。
しかし、Javaにはこのような高度な機能はありません。

そこで、生まれた苦肉の策が、「interfaceとimplements」です。

interface Japanese {
public int getStringLength(); // interfaceは実装を含まない!
                 // すなわち「実装の継承」ができるわけではない。
}

class TextField {
・・・
}

class JTextField extends TextField implements Japanese {
・・・・
public int getStringLength() {
  ・・・
return strlength; //implementsの実装を「各クラスで」実装してやる必要がある。
 }
}


結局のところ、Javaでは、複数のクラスを親クラスには持ち得ないため、継承できなかったクラスは「各クラスで実装してやる必要性」があるのです。


ではどのように使うのが効果的か?

なまえのままです。「代表的なインターフェイス」にたいしてinterfaceを使うのが良いと思います。

例えば、プレイヤー系であれば、ビデオ・コンポ・ウォークマン・などにかかわらず、
interface controlpanel {
public play();
public stop();
public next();
public back();
}
というような基本的インターフェイスを「持っているべき」です。

こうすることで、それぞれのクラス宣言の際に、これらの「インターフェイスを持っているべきであり、実装されるべきである」ということを「強く暗示」することができます。
class videoplayer extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

こうすることで、同様のクラスを作成するユーザーは、
「プレイヤー系は、4つ操作が出来るコントロールパネルをインターフェイスとして持つべきなのだな!?」という暗示を受け取り、自分のクラスでもそれを模倣するでしょう。

class mp3player extends player implements controlpanel {
public play() {・・・}
public stop() {・・・}
public next() {・・・}
public back() {・・・}
}

また、これらのクラスを使用するユーザーも、「implements controlpanel」という
表記を見て、「4つの基本操作は押さえられているのだな!」という基本中の基本動作を抑えることが出来ます。

まとめると、クラスに「こういう特徴もたしてください!」「こういう特徴持ってますよ!」という一種の暗示的警告や方向性を与えることができるわけですね。

バラバラに理解してもしょうがないッス。

まず、
(1)interface と implements
(2)class と extends

が対応しているわけっす。

JavaはC++と違って、比較的言語仕様を「簡単」にしたので「多重継承」という
概念がないです。
多重継承っていうのは、複数のクラスを親クラスにして継承するってことですね。

たとえば、 「TextFieldクラス」と「Japaneseクラス」を多重継承すると、
「JTextFieldクラス」ができるっていうのが自然な考え方でしょう?

まぁ、例えば、日本語クラスであれば...続きを読む

Q文字列から数字を取り出す方法

質問があります。
例えば、テキストファイルから文章を一行ずつ読み込み、それをString型の変数に格納していきます。
その文から数字(整数で、何桁かはわからない。)を取り出し(ちなみにその数字の前後には特定の文字がついています)、変数に格納するというプログラムを作りたいのですが、具体的な方法がわかりません。
よろしければ是非教えてください!

Aベストアンサー

こんな感じですか?
数値以外を除きそのまま代入させます

String str = "ABCDABCD1234512345abcd";
int ret = Integer.parseInt(str.replaceAll("[^0-9]",""));
System.out.println(ret); //結果表示

Q戻り値の意味がわかりません…

戻り値とはどういう値なのか簡単な例文で教えて頂けますか?

Aベストアンサー

バカくさいかもしれませんが簡単な例えをだしてみます。
2人の子供がいて、名前をそれぞれ太郎・花子にしましょう。この2人の子にある役割を決めます。
・花子は飴をもらうと、それをチョコにする役割。(できるかは別として)
・太郎は花子を呼んで飴をあげる役割。

さてこの例では太郎の飴が引数(ひきすう)になり
花子のチョコが戻り値になります。

このイメージを元に次の文を読んでみてください。

「プログラム中の関数やサブルーチンが処理を終了し
呼び出し元に処理の結果として返す値。」

これが戻り値の正しい定義です。
そのほかにはNo1さんのような役割指すときも、それを「戻り値」と呼んだりします。

QEXCELファイルのカレントフォルダを取得するには?

EXCELファイルのカレントフォルダを取得するには?

C:\経理\予算.xls

D:\2005年度\予算.xls

EXCEL97ファイルがあります。

VBAで
  カレントフォルダ名
(C:\経理\,D:\2005年度\)
を取得する事は可能でしょうか?

CURDIRでは上手い方法が見つかりませんでした。

Aベストアンサー

こんばんは。
Excel97 でも、同じですね。以下で試してみてください。

Sub test()
'このブックのパス
a = ThisWorkbook.Path
'アクティブブックのパス
b = ActiveWorkbook.Path
'Excelで設定されたデフォルトパス
c = Application.DefaultFilePath
'カレントディレクトリ
d = CurDir
MsgBox "このブックのパス   : " & a & Chr(13) & _
   "アクティブブックのパス: " & b & Chr(13) & _
   "デフォルトパス    : " & c & Chr(13) & _
   "カレントディレクトリ : " & d & Chr(13)
End Sub

QC、C++、C#の関係について

現在C#で簡単な開発しています。

今度就く業務ではC++が必要だから、勉強しておくようにと言われました。
C#を使っていながら、恥ずかしい質問なのですが・・・

 ・よく聞く「VC++」と「C++.Net」は、違うのでしょうか?
  正式名称が「Microsoft Visual C++ .Net」なので、同じような気がするのですが。
  私の使用PCには「Microsoft Visual Studio .Net 2003」が入っています。

 ・C言語とC++との違いは何なのでしょうか?
  両者の関係が分かりません。
  C++を勉強する場合、C言語というのは飛ばしてよいのでしょうか?
  C#を習得するときは、C言語を勉強しませんでした。
  C++で開発とか、C#で開発とか言いますが、「C言語で開発」とは言わないですよね?

C#とC++がどれほど違うのかが不安です。
質問がたくさんになってしまいましたが、よろしくお願いいたします。

Aベストアンサー

 ・よく聞く「VC++」と「C++.Net」は、違うのでしょうか?

文脈により違うものをさす可能性もあります。(同じ可能性もありますが、大抵は違うかも…)

「VC++」は、Microsoft社のC++コンパイラ製品名(の略称)であって、言語ではないです。
但し、特にMFCでの開発をさして(C++と区別して)「VC++」と表現する方もいます。

そして、「VC++」は、「非.NET platformのC++(標準C++)」と、
.NET platform用のManaged C++(MSの独自拡張。後に整理されてC++/CLIとして規格化)の*両方に*対応してます。

C++.NETというと、恐らくはManaged C++(MS独自拡張)か、
C++/CLI(これはECMAで独立した言語として標準化)をさすと思われます。
# Managed C++とC++/CLIも微妙に違う言語です。

一報、単にVC++と言う場合、標準C++(+MFC)の可能性が高いです。


> 私の使用PCには「Microsoft Visual Studio .Net 2003」が入っています。

これは、.NET framework上のManaged C++と標準C++の両方に対応した製品です。

 ・C言語とC++との違いは何なのでしょうか?

C言語は、ISO/IEC9899で標準化された言語です。
C++は、C言語をベースに開発された別の言語です(ISO/IEC14882)。
そして、.NET framework用のC++/CLI (ECMA-372)も別の言語です。

CとC++の関係を例えるなら、ラテン語と英語とかみたいなものでしょうか。
(ベースでもあり、参考にはなるが、似て非なるもの)

> C++を勉強する場合、C言語というのは飛ばしてよいのでしょうか?

知っているとお得です。知らないと将来「はまる」可能性もあります。
ですが、最初に勉強するべきかといわれると、議論が分かれるところだと思います。

> C++で開発とか、C#で開発とか言いますが、「C言語で開発」とは言わないですよね?

「C言語で開発」とも言います。
(PCアプリだと「C言語+Win32」ということが少ないだけで、組込業界等に行くと普通にあります。別言語ですし、C言語のシェアも高いので)

> C#とC++がどれほど違うのかが不安です。

根本のOOPとかは共通ですが、C++の方が格段に複雑で難易度が高いです。
C++⇒C#は比較的容易ですが、逆は結構面倒だと思います。

C#がオートマ車の運転なら、C++はF1カーのようなもの。
クラッチの切り方から注意しないとエンストしたり、事故ります。
その代わり極めれば性能が出ます。(反面、極めるのは困難です)

 ・よく聞く「VC++」と「C++.Net」は、違うのでしょうか?

文脈により違うものをさす可能性もあります。(同じ可能性もありますが、大抵は違うかも…)

「VC++」は、Microsoft社のC++コンパイラ製品名(の略称)であって、言語ではないです。
但し、特にMFCでの開発をさして(C++と区別して)「VC++」と表現する方もいます。

そして、「VC++」は、「非.NET platformのC++(標準C++)」と、
.NET platform用のManaged C++(MSの独自拡張。後に整理されてC++/CLIとして規格化)の*両方に*対応してます。

C++.NET...続きを読む


人気Q&Aランキング