Java 自学自習
(
へもどうぞ)
- このページは,Java を自分で勉強してみようと思う人のための自学自習用の( e-Learning )ページです.簡単な解説と共に,多くの演習問題を与えてあります.解説を読むだけでなく,必ず,演習問題を自分で行ってください.そして,すべての演習問題に対して正解を得た後,次に進んでください.
- 私自身の考えからすれば,C/C++ を学んでから Java について学ぶ方が適切だと思いますが,ここでは,はじめてプログラミング言語を学習する人を対象として書いたつもりです.そのため,他の言語を知っている人にとっては冗長な部分も多いかと思います.そのような方は,適当にとばして読んでみてください.なお,Java の前に C/C++ について学びたい方は,「C/C++ と Java」や「C/C++ 自学自習」を参考にしてください.
- このページにおいて Java におけるすべての機能を学習できるわけではありません.基本的な文法と Java における代表的なクラスとメソッドの一部についてだけ学習します.さらに学習したい人は,Java に関する書籍や「C/C++ と Java」(特に,その付録)を参考にしてください.
- 演習問題の解答をできる限りコンピュータで自動判断していますが,たとえばプログラムを書くような問題の場合,ソースプログラムをチェックして答えが正しいか否かの判断を行っているわけではありません.したがって,なるべく工夫して問題を作成してはいますが,人間が判断する場合とは異なり,十分な判断を行うことはできない場合も多くあると思います.
- また,コンピュータで解答の正誤を自動判断できない場合は,学習者に判断をお願いすることになりますが,できる限り正確に行ってください.詳しいチェック方法は具体的な問題を提示する際に示します.その他,演習問題を解く場合,以下の点に注意してください.
- 同時に複数の問題を送信しないでください.必ず,一つの問題に対する結果が得られてから(エラーの場合も含む),次の問題を送信してください.
- 問題の答えを送信する際,必ず学籍番号,または,メールアドレス(外部の方)を入力してください.実際に存在しないいい加減なメールアドレスを入力されても動作しますが,もしそれが他の人が入力されたものと一致した場合は,問題が発生する場合がありますので必ず正しいメールアドレスを入力してください.学籍番号やメールアドレスは,演習結果の保存や演習問題の正誤の判定に利用します.それ以外の目的に利用することは決してありません.
- コンピュータで解答の正誤を自動判断するプログラムを書く問題の際は,必ず,「プログラムを書く際の注意事項」をよく読んでください.また,コンピュータで解答の正誤を自動判断しないプログラムの場合は,「正誤のチェック方法」(問題によって多少異なる)に従って行ってください.
目次
第T部 基本文法
- クラスやメソッドは,Java において非常に重要な概念ですが,第T部では,それらに関する説明は省略し,ほとんどのプログラミング言語が持っている基本的な機能について説明します.従って,他の言語を知っている方は,第T部を読み飛ばしてもらっても問題ないかと思います.
- 第1章 データ型と演算子
- 1.1 コメント(注釈)
- 1.2 データ型
- 1.2.1 リテラル
- 1.2.2 変数
- 1.3 算術演算子と代入演算子
- 1.3.1 算術演算子
- 1.3.2 代入演算子
- 1.3.3 インクリメント,デクリメント演算子
- 1.3.4 型変換( cast 演算子)
- (演習問題)
- 1.4 簡単なプログラム
- (プログラム例 1.1 ) 2 つのデータの和と差
- (演習問題)
- 1.5 その他の演算子
- 1.5.1 関係演算子,等値演算子,及び,論理演算子
- (プログラム例 1.2 ) 関係式と論理式
- (演習問題)
- 1.5.2 ビット演算子とシフト演算子
- (プログラム例 1.3 ) ビット演算とシフト演算
- (演習問題)
- 第2章 制御文
- 2.1 分岐
- 2.1.1 if 文
- (プログラム例2.1) 円周と面積の計算
- (プログラム例2.2) 坪・m2 間の単位変換
- (プログラム例2.3) 3 つのデータの最大値と最小値
- (プログラム例2.4) データの比較
- (演習問題)
- 2.1.2 switch 文
- (プログラム例2.5) データの比較( switch 文)
- (演習問題)
- 2.2 繰り返し
- 2.2.1 繰り返し文
- (プログラム例2.6) 平均値の計算
- (プログラム例2.7) for 文のネスト
- (プログラム例2.8) 入力の繰り返し( do-while )
- (プログラム例2.9) 最大値(初期設定)
- (演習問題)
- 2.2.2 繰り返しの中断
- 2.2.2.1 break 文
- (プログラム例2.10) 繰り返しの中断( break )
- 2.2.2.2 continue 文
- (プログラム例2.11) 繰り返しの中断( continue )
- 第3章 配列
- 3.1 配列宣言
- 3.2 配列とポインタ
- 3.3 配列の使用例
- (プログラム例3.1) 平均点と平均点以下の人( 1 次元配列)
- (プログラム例3.2) 平均点と平均点以下の人( 2 次元配列)
- (演習問題)
第U部 クラスとメソッド
- 第4章 クラスとメソッド
- 4.1 クラスとは?
- 4.2 クラス宣言
- (プログラム例4.1) クラス宣言の例
- 4.3 オブジェクトとポインタ
- (プログラム例4.2) オブジェクトとポインタ
- 4.4 パッケージ
- (プログラム例4.3 ) パッケージ
- 4.5 例外処理
- (プログラム例4.4 ) 例外処理
- 4.6 メソッドと引数
- 4.6.1 引数と戻り値
- (プログラム例4.5 ) 基本型
- (プログラム例4.6 ) 配列の引き渡し
- (プログラム例4.7 ) 戻り値が配列の場合
- (プログラム例4.8 ) オブジェクトの引き渡し
- 4.6.2 main メソッド
- (プログラム例4.9 ) main メソッドの引数
- (演習問題)
- 4.7 クラスの使用例
- (プログラム例4.10 ) ファイル入出力(データ数未知)
- (プログラム例4.11 ) リスト構造
- (演習問題)
- 第5章 継承
- 5.1 継承
- (プログラム例5.1) 派生クラス
- (プログラム例5.2) フレームの表現
- (演習問題)
- 5.2 インタフェース
- (プログラム例5.3) インタフェース
- 5.3 抽象クラス
- (プログラム例5.4) 抽象クラス
第V部 Windows プログラミング
- 第6章 Windows プログラミング
- 6.1 Windows とアプレット
- 6.1.1 Windows
- (プログラム例6.1) Window の生成と消滅
- 6.1.2 アプレット
- (プログラム例6.2) 加算
- (プログラム例6.3) 文字列の検索
- 6.2 グラフィックス
- (プログラム例6.4) 加算と図形
- (演習問題)
- 6.3 イベント処理
- (プログラム例6.5) Window の生成と消滅
- (プログラム例6.6) マウスイベント
- (演習問題)
- 6.4 AWT と Swing
- (プログラム例6.7) 加算(テキストフィールドとボタン)
- (プログラム例6.8) チェックボックスとラジオボタン
- (演習問題)
- 6.5 マルチスレッドとアニメーション
- (プログラム例6.9) マルチスレッド
- (プログラム例6.10) 円の連続描画
- (プログラム例6.11) 図形の移動(単一図形)
- (プログラム例6.12) 図形の移動(複数図形)
- (プログラム例6.13) 画像メモリの操作
- (プログラム例6.14) 簡単なシューティングゲーム
- (演習問題)