- ベストアンサー
COBOLの考え方からJavaへ
liar_adanの回答
COBOLの事はよく知らないので、自信なしとします。 「手続き型言語一般」と「オブジェクト指向言語であるJava」の対比と考えて話します。 すでにCOBOLで書いたプログラムをJavaに書き換えるという場合、 「オブジェクト指向」は考える必要がない・考えてしまうとできないと思います。 その場合、クラスはアプリケーション全体でひとつだけにして、 それぞれのサブルーチンをメソッド(staticメソッドで良い)にするといいでしょう。 オブジェクトの観点からは、上記のような書き方は「とんでもない」のですが、 移植の場合仕方ない方法であると思います。 お気付きの通り、「クラス」は「メインルーチン」とか 「READ処理」とかいったものではありません。 データと、それに付随する処理のかたまりです。 「このアプリケーションでは、どんなデータを扱うのか」 をまず考え、それらに対してクラスを設計していきます。 Javaなど、オブジェクト指向言語でプログラムを書くときには、 アルゴリズムのことは、考えません。 「どんなデータがあるか」「それに付随する処理は何か」をまず考えます。 実装段階でやっとアルゴリズムのことを考えます。 「オブジェクト指向」と「手続き型」では、得意とする粒度がちがうのです。 オブジェクト指向は大規模なシステムを組むのに向き、 手続き型は、行う作業そのものを考えます。 「オブジェクト指向」の根底には「擬人化」があると考えるとわかりやすいと思います。 ある処理を、仮に人間の組織が行うとしたら…と考えて、 「この情報はあの部署にある。処理するにはあの部署と あの部署の強力を得て、 こういう作業をすればいいな…」 のように考えます。そして「部署」を「クラス」に置き換えます。 COBOL用の仕様書はオブジェクト指向プログラムにはならないと思います。 最初の発想が違います。 その際、手続き的な処理をそのままJavaに置き換えるほかありません。 Javaのコード規約としては、 Java2SDKドキュメントから辿れる 「Java プログラミング言語に関するコード規約」 というものがあります。 他にもいくつか、ローカルのコード規約はあります。
関連するQ&A
- Javaにおけるオブジェクト指向とは?
現在Javaを勉強しております。 以前はC言語を勉強しておたのですが、 JavaとCの違いにおいてJavaの特徴としてオブジェクト指向と習いました。 しかしいまいちこのオブジェクト指向を理解できません。 プログラムを一つのまとまりとして考えるというのはどういうことなのでしょうか? 確かにJavaはC言語とは違いいくつかのプログラムからできている (はず?見当違いだったらすみません) C言語が一つの大きなプログラムでできているとすると、 Javaは細かいプログラムの集合体であると私は考えていました。 この細かいプログラムの集合体というのがオブジェクト指向なのでしょうか? 全くの見当違いだったらすみません。 よろしくお願いします。
- ベストアンサー
- Java
- オブジェクト指向の利点とは?
汎用機でCOBOLのSEを10数年やってました。(今は自営業) COBOLはプロセス型の言語といわれているのに対して C言語はオブジェクト指向型の言語といわれています。 私はC言語やJAVAで開発したことはないのですが、 C言語、すなわちオブジェクト指向の利点ってなんでしょう? JAVA、C言語はオブジェクト指向ですよね。 私はソフトウェア開発技術者の資格など持っていますのでオブジェクト指向の表面的な意味は分かります。 ですが実際、アプリ開発時・運用時にどのような利点があるのかがイマイチ分かりません。 「どっちでもいいんじゃないか」なんて思ってしまいます。 プロセス指向(VB、COBOL等)とオブジェクト指向(C言語、JAVA)の差異って何なんでしょう。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- java.util.ArrayListクラスの継承
Java5年ぶりでちょっと新しい仕様について教えてください。。 java.util.ArrayListクラスを継承したクラスを作成しようと思っているのですが、継承後のクラスでも ArrayListChild<E> というような記述を有効にするには、一体どのような処理をすればよいのでしょうか。 そもそも、<E>とコンストラクタの後などに付けるこの仕様、なんて名前の仕様なんでしょうか。 よろしくお願いします。
- ベストアンサー
- Java
- C言語でのプログラミングについて
C言語でのプログラミングについて これまでJavaでよくプログラミングをしてきたのですが、最近Cもよく使っています。 しかしJavaに慣れすぎたのか、Cで大きなプログラムを作ろうとすると、どうすればいいのかよく分かりません。 HeaderファイルはJavaでいうと継承みたいなもので、複数のファイルに同じ機能を持たすときに使うのでしょうか? Javaではクラスがありそれぞれに役割がありますが、Cの場合はファイルごとに大まかな役割を分けるのでしょうか? (例えばユーザーからインプットを取ってくるファイルをgetInput.cで、それを処理するファイルをvefiryInput.cというようにするのでしょうか?) C言語でのプログラミングの仕方を教えてください。
- ベストアンサー
- C・C++・C#
- JAVAはどんな事が出来ますか?
javaの参考書を買ってきたのですが、いまいちjavaがどこまで出来るのか分からないんです。 プログラム言語と言うことはCとかと変わらない能力を持っているのですか? 参考書を買ってしてもまだ、javaをただの記述言語としか思っていません。お願いします。
- 締切済み
- Java
- javaのEclipseの問題がわからない
Human.javaで記述されたクラスを継承し、継承したクラスをインスタンス化して、利用できるHumanクラスのメンバをすべて使用するプログラムを作成せよ。クラス名は、継承したクラスをPerson とし、そのクラスをインスタンス化するクラスをQuestion13_1として、実行結果も記述すること public class Human { private String name = "デフォルトの名前"; protected int age = 22; public int height = 170; final public int weight = 55; public String GetName(){ return name; } public void setName(String name){ this.name = name; } } 結果何を出せば良いのわかりません。
- 締切済み
- Java
- COBOL
COBOLで INIT-SEC. OPEN INPUT IN-FILE. OUTPUT OUT-FILE. DISPLAY " 学番 名前 国 数 英 合計". MOVE ZERO TO CTR-IN CTR-OUT. PERFORM READ-SEC. の部分に「開始メッセージを表示する」を追加したいのですがプログラムソースを教えてください。
- ベストアンサー
- その他(プログラミング・開発)
- 【COBOL】read文でエラー
COBOLで以下のエラーが発生しています。 ↓ xxファイルの'READ'文で,実行順序の誤りが発生しました.'AT-END '. PGM=xx. LINE=xxx PGの内容としては、 2つのinputファイルを読み込み、マッチング処理を行ってoutputするという処理です。 エラー行数は、2つ目のinputファイルをreadするところでエラーとなっています。 2つの異なったファイルをreadすることができないのでしょうか。 どこがNGなのかわかりません。 追記すべき箇所があれば記載します。 アドバイスをお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- Javaについて
明日学校でミニテストがあるのですが、例題で出された問題がどうしても解けません。 分かる方教えていただけたら助かります。 回答よろしくお願いします。 ・Javaはオブジェクト指向をとりいれた『 』言語 ・実行するためには『 』コマンドによって、中間ファイルを作り、『 』コマンドによって実行する。 ・オブジェクト指向において、クラスは『設計図』であり、クラスを基に実体であるインスタンスを生成する。 ・int型の変数「number」を定義し、値「13」を代入しなさい。 ・以下のコードではエラーとなるため、キャストが必要です。適切なキャストを追加し、実行できるコードに修正してください。 int number = 1.3;
- 締切済み
- Java
お礼
>その場合、クラスはアプリケーション全体でひとつだけにして、 >それぞれのサブルーチンをメソッド(staticメソッドで良い)にするといいでしょう。 誠にその通りですね。目からうろこ状態です。 ありがとうございます。 一通り入門書を勉強したら、いろいろ機能を使わなきゃ! といった観念になっていました。 しかし「COBOL用の仕様書」が「オブジェクト指向」の プログラムにならないのは、いただけないですね。 ホストのOSに「Z/OS」なるものがあります。 これはJAVAの使用が可能だそうです。 となると、今までCOBOLで作成していたプログラムを JAVAに変えるといった仕事が発生するかもしれません。 IMS/SAILに変わると言われる、 NeFIS(金融統合パッケージ)も出たことだし。。。