質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

429閲覧

JAVA入門で何かを制作するとすれば何がいいでしょうか?

makoto-n

総合スコア436

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/08/16 21:13

学校で夏休みにオブジェクト指向を理解してこいと指示されたのですが、
自分は何かを作りながら考えて理解するほうが頭に入りやすいので、何かを作りたいと思っているのですが
何を作成すればいいかわかりません。

試しにと思ってJAVAでテキストエディタを作っていたのですが、不明なエラーなどが連発して困っています。

入門に最適なものでは何を制作するべきでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

「何を制作するべき」というのはないと思います。
「何を作りたいから何を組み込む」という観点ではどうでしょうか。
同じものを作るのであっても様々な表現方法があるので、
全てを盛り込もうと思えば無理やりでも盛り込めるし、
1個だけ徹底的に使うというやり方もできます。

私の場合は単にprintだけで出力できる文言をあえて色んな機能を使いながら、
いかに難しくできるか、とか昔やってました。
例えば「Hello,World」を出力するためにオブジェクト指向をふんだんに使ってみるところからやってみてはどうでしょうか。
そこから少しずつ単に出力するのではなく画面を作ってみたり、入力させてみたり保存してみたりと・ステップアップしていく。
※もちろんオブジェクト志向の概念とか機能それぞれは言葉の上でも作り方でも理解しておく必要があります

「簡単なものをあえて難しく」ができるようになると「難しいものをいかに簡単に」が出来るようになります。

余談ですが、
今作ろうとしているテキストエディタとやらで起きている不明なエラーと
オブジェクト指向の理解とは無関係のものですね(全くの無関係という意味ではなく本質的な部分として)
エラーが起きるということはそもそもきちんとプログラムを組めていないということです。
エラーを解決するということはそれだけ成長できるということにもつながるので「不明な」部分がなくなるようにしていくことも必要な過程です。

がんばってください。

投稿2017/08/17 00:30

編集2017/08/17 01:14
m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

そのまま、テキストエディタを作るのが良いと思います。エラーに悩まされることは多いでしょうが、手ごたえを感じることができます。

エラーが不明ことの一つはもちろんjavaや開発環境に詳しくないため、エラーの意味を理解できないという部分があると思います。

この点は、いづれ必要なスキルなので、課題のために後回しにする必要はないと思います。

しかし、エラーの意味は分かるがどこでエラーを起こしているかわからない。または、この範囲にバグがあるのは判っているがどこがエラーの原因を引き起こしているかわからないというのもあると思います。

この点についてはオブジェクト指向は有効です。たぶん有効な手順を書きます。

1.大変でしょうがエラーの原因を特定してください。
2.コードを修正します。その部分が修正されたことを確認してください。
3.原因箇所にバグを作ったのは原因は何ですが?
コードが読みずらかったり、変更箇所が分散していませんか?
(長い判定式・一つのメソッドで複数の処理・わかりずらい名前)
4.できればオブジェクト指向を使って、これだったらすぐにバグを発見できたと思えるコードに変更します。もちろん変更後、動作を確認してください。
5.前のコードを見て、成長を喜びましょう。(目に見えて良くなっていないのであれば、変更しすぎたのかもしれません。)

ある程度できるようになると、初めからオブジェクト指向にすることが自然になると思います。また、個人的に概念的な方からオブジェクト指向に入るのはおススメしません。コードをよりよくすることが目的だからです。

投稿2017/08/17 01:11

iwamoto_takaaki

総合スコア2883

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/08/17 01:18

オブジェクト指向を理解する事を根底に置くんだったら、TDDで開発って良くないですかね?
iwamoto_takaaki

2017/08/17 01:28

もちろん、TDDは理想的だとおもいます。 質問者の隣に座れるのであればGitといづれかのテストツールをインストールします。 しかし回答では、あと3~5冊本を読んでから始めましょうという形になってしまうので、このような回答にしました。 あるいは、ツール無しのTDDを薦める回答もありかもしれません。
makoto-n

2017/08/17 13:49

ありがとうございます。
guest

0

オブジェクト指向の特徴って、
・カプセル化(振る舞いの隠蔽とデータ隠蔽)
・インヘリタンス(継承) -- クラスベース
・ポリモフィズム(多態性、多相性)
・ダイナミックバインディング(動的束縛) -- 動的型付け
(Wikipediaより)
になるかと思いますが、フレームワークだと網羅的に使用されていると思います。

入門に最適でもないですし、作るにはちょっと敷居が高すぎる気もしますが、小規模なフレームワークを探し解析してみるのは、結構勉強になる気がします。

投稿2017/08/16 21:20

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問