教えてください。
C言語は、一通りマスターしております。
現在JAVAを勉強しております。
C言語で作成したシステムをJAVAに移植しようと思ったのですが、
下記のような定義があり、身近な書籍で確認したところ、参考に
なる資料がありませんでした。
このようにC言語で定義されたのをJAVAで実現する事は可能でしょうか?
これは、禁じ手なのでしょうか?
すみませんが、アドバイスお願いします。
(1)構造体を定義します。
typedef struct {
int iID;
char szSyainCode[ 12 ];
char szName[ 40 ];
int iage;
}Syain;
(2)定義した構造体を利用し、コンパイル時に初期化を行わせます。
static Syain tSyain[] = {
{ 1 ,"ABC001","鈴木",43},
{ 2 ,"ABC002","大木",23},
{-1 ,"","",0}
}
(3)コンパイル
(4)実行
(5)プログラムを実行した時にこのテーブルを参照し、処理します。
int i;
for( i=0 ;; i++ ){
/* 終端チェック */
if( tSyain[i].iID==-1 ){
break;
}
:
No.1ベストアンサー
- 回答日時:
まず(1)はできます。
構造体の代わりにclassを使って、フィールドをpublicにすればいいわけです。
(オブジェクト指向的にはあまりよい作法ではありませんが)
問題は(2)です。
Javaだと、このように、単純に要素を並べて初期化することはできません。
newを用いて、コンストラクタを起動しなければなりません。
Syain tSyain[] = {
new Syain(1 ,"ABC001","鈴木",43),
new Syain(2 ,"ABC002","大木",23)
};
のようにします。
コンパイル、実行は上の方式でできると思います。
Javaの配列は、配列長が入っているので、
終端チェックはそれを使った方がいいでしょう。
for(int i=0 ; i<tSyain.length; i++ ){
/* 終端チェック不要 */
……
}
ただ、構造を変えたくないのであれば、IDによる終端チェックをしても
いいでしょう。
返事が遅くなりすみません。
構造化で学んできたため、オブジェクト指向の切り替えが
できていない状態です。
>(オブジェクト指向的にはあまりよい作法ではありませんが)
なるほど。禁じ手までいかなくても、やらない方法なのですね。
オブジェクト指向で実現する方法を勉強してみます。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# プログラムが書けません。 4 2023/01/22 22:57
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
.jarファイルの中身って書き換...
-
Eclipse3.5EEでJavaのコンパイ...
-
javax.servlet は存在しません...
-
コンパイルエラーに出てくる、i...
-
javaが文字コードの影響でコン...
-
XPでユーザー名が全角の場合...
-
javaの簡単なソースがコンパイ...
-
exlipseでデバックエラーが発生...
-
eclipseの設定のJREとコンパイ...
-
コンパイルができないのですが...
-
classファイルを元に戻す
-
java.lang.ClassNotFoundException
-
antでコンパイルするとき
-
IIS環境でJAVAを使用したい
-
jasperとは
-
eclipseの構文エラーについて
-
Jakarta POI のHSSFでのフッタ...
-
「識別子がクラス名でも名前空...
-
NetBeansのエラー
-
warファイルを展開するとタイム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
.jarファイルの中身って書き換...
-
IIS環境でJAVAを使用したい
-
javaが文字コードの影響でコン...
-
Eclipse3.5EEでJavaのコンパイ...
-
コンパイルエラーに出てくる、i...
-
サクラエディタでjavaのプログ...
-
Javaのコンパイル結果が表示さ...
-
eclipseの構文エラーについて
-
javaの簡単なソースがコンパイ...
-
javax.servlet は存在しません...
-
「識別子がクラス名でも名前空...
-
eclipseの設定のJREとコンパイ...
-
dokojavaのコンパイルについて
-
逆コンパイルの見方について
-
eclipseについて
-
exlipseでデバックエラーが発生...
-
classファイルを元に戻す
-
日本語対応 逆コンパイラについて
-
コンパイルができないのですが...
-
java サーブレットのサンプルプ...
おすすめ情報