- 1 名前:たかし [2015/12/25(金) 18:43:55.48 .net]
- 先生を募集します
先生!!
- 747 名前:takesi mailto:sage [2016/01/23(土) 21:51:43.52 .net]
- うーん…よく分かりません
- 748 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 21:52:34.16 .net]
- チェック?入れると来ないと思うが
しいて言うならリモートトラッキングのorigin/master
- 749 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 21:53:11.24 .net]
- ×と来ない
○所ない
- 750 名前:takesi mailto:sage [2016/01/23(土) 21:57:56.98 .net]
- こんな画面です
i.imgur.com/nYnWMt8.jpg
- 751 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 22:04:43.11 .net]
- imgur.com/a/4AcVm
- 752 名前:takesi mailto:sage [2016/01/23(土) 22:06:10.16 .net]
- その通りになりません
- 753 名前:takesi mailto:sage [2016/01/23(土) 22:07:21.59 .net]
- リベース結果
HEADはすでに最新の状態のためリベースは何もしませんでした と出ます
- 754 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 22:08:41.92 .net]
- どっちもチェック入れないでやってみて
- 755 名前:takesi mailto:sage [2016/01/23(土) 22:10:23.36 .net]
- そうすると>>753になります
- 756 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 22:11:31.49 .net]
- よしもっかいチェックアウトからやり直したほうがいいな
問題解いたファイルをどっかにコピーしといて プロジェクトを右クリック→削除 Gitリポジトリ・エクスプローラーで右クリック→リポジトリの削除 終わったらもっかいGitの複製→インポート その後コピーしといたファイルで上書きしてコミット→プッシュ
- 757 名前:takesi mailto:sage [2016/01/23(土) 22:16:28.78 .net]
- やってみても以前と同じ状態になってコミットできません
- 758 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 22:23:26.30 .net]
- 削除の時に出るチェックボックスチェックつけてもっかいお願い
- 759 名前:takesi mailto:sage [2016/01/23(土) 22:26:55.43 .net]
- 全てにチェック入れても再び行うと元の状態に戻っています
- 760 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 22:36:25.51 .net]
- チーム→切断
チーム→プロジェクトの共有 Git imgur.com/TkvgQp2
- 761 名前:takesi mailto:sage [2016/01/23(土) 22:39:26.70 .net]
- やりました
次にどうすればいいのでしょうか
- 762 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 22:40:17.85 .net]
- またコミット→プッシュしてみて
- 763 名前:takesi mailto:sage [2016/01/23(土) 22:41:20.53 .net]
- …(;´Д`)ウウッ…
できません
- 764 名前:takesi mailto:sage [2016/01/23(土) 22:46:42.65 .net]
- teamviewer使ってみます
ID送ります
- 765 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 22:49:23.02 .net]
- プロジェクトを右クリック
プロパティでプロジェクトの置き場所確認してください
- 766 名前:takesi mailto:sage [2016/01/23(土) 22:52:52.47 .net]
- 送りました
操作できますか?
- 767 名前:takesi mailto:sage [2016/01/23(土) 23:01:01.71 .net]
- これからの変更はコミットすれば届くのでしょうか
- 768 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 23:01:32.77 .net]
- できましたね
さっき行った操作のおさらい マージとは 同じファイルを編集してしまった場合あとからプッシュする人が 何が二人の更新を合わせたうえで正しいか判断する必要がある その作業をマージという gitでは衝突(まったく同じ個所を編集)していなければ大体勝手にマージしてくれる
- 769 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 23:03:21.86 .net]
- そうです
またnon-fast-forwardと出たら 1.プルして再度コミット→プッシュ 2.フェッチしてマージして再度コミット→プッシュ が原則です
- 770 名前:takesi mailto:sage [2016/01/23(土) 23:05:45.39 .net]
- 分かりました!
とりあえずGithubでファイルが共有できるまでになりました 自分で課題を進めていきます 今日はありがとうございました
- 771 名前:takesi mailto:sage [2016/01/23(土) 23:07:06.59 .net]
- 私は学生で受験生なので低浮上になるかもしれませんがよろしくお願いします
3月中頃から春休みで本格的に勉強ができますが、それまでもできるだけ毎日顔を出したいと思います
- 772 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/23(土) 23:07:49.55 .net]
- 乙です
次の課題用意+講義内容まとめときます わかんないとこあったらカキコよろです
- 773 名前:takesi mailto:sage [2016/01/23(土) 23:13:32.30 .net]
- わざわざありがとうございます
期待に沿えるよう頑張ります
- 774 名前:takesi mailto:sage [2016/01/24(日) 13:30:33.40 .net]
- おはようございます
課題に取り組みます 特に配列の理解が甘いみたいなのでググりながら解いていきます
- 775 名前:takesi mailto:sage [2016/01/24(日) 14:34:23.47 .net]
- Exam4,7以外は終了しました
コミット完了です
- 776 名前:takesi mailto:sage [2016/01/24(日) 17:10:58.24 .net]
- いま確認したらコミットできてませんでした
なぜだろう
- 777 名前:takesi mailto:sage [2016/01/24(日) 17:16:19.68 .net]
- 昨日のことを思い出しながら闇雲にボタン触ってたら出来ました
こんなんでいいのやら
- 778 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 17:45:37.57 .net]
- うごきゃあいいんだよ
- 779 名前:takesi mailto:sage [2016/01/24(日) 18:15:09.77 .net]
- Exam4,7は分かりません
他の問題もググりながら解きました 難しいですね
- 780 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 19:48:15.04 .net]
- じゃあ4,7のヒント出す
4 「abcdefghijklmnopqrstuvwxyz .,-」 をcharの配列で持つ charを渡してその配列の何番目の文字(int)か調べる(関数化するとよい) 暗号の文字列を上の処理を使ってintの配列に直す その配列すべてに同じ数xを足す 30(文字の種類数)を超えたものは30を引く intの配列をまたcharの配列に戻す charの配列中に「person」の並びがあるか調べる 並びがあればその並びが正解 このような数xを探す 7 たらいまわし関数とは まずxとyを比較し yのほうが大きければ return y; そうでなければ int newX = tarai(x-1, y, z); int newY = tarai(y-1, z, x); int newZ = tarai(z-1, x, y); return tarai(newX, newY, newZ); する関数。
- 781 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 19:56:30.87 .net]
- 今日はどれやりたい?
関数について オブジェクト指向について パッケージとアクセス修飾子について
- 782 名前:takesi mailto:sage [2016/01/24(日) 20:17:01.44 .net]
- オブジェクト指向についてお願いします
- 783 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 20:32:16.57 .net]
- 把握
関数については知ってるものとしてやるよー オブジェクト指向とは nobuo-create.net/java-beginner-17/ よく言われるのはものを基準にプログラミングを考えるということ 生徒というオブジェクトを考える 生徒には名前と学年という情報(もっとあるがここでは省略)がある 3人の生徒 takesi:1年生 John:2年生 Suzuki:3年生 がいた場合 オブジェクト指向を使わないでこの情報を持つとしたら String[] names = new String[]{"takesi", "John", "Suzuki"}; int[] grades = {1, 2, 3}; とかやるわけだが、一人の情報は一人の情報でまとめて持っておきたい そのためJavaではクラスというものを使ってオブジェクトを作る その場合以下のようになる class Student { String name; int grade; }; Student students = new Student[3]; Student takesi = new Student; takesi.name = "takesi"; takesi.grade = 1; students[0] = takesi; …以下略
- 784 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 20:39:19.09 .net]
- この一つのオブジェクトに属する情報は一つのオブジェクトに持たせる
というのがカプセル化とか呼ばれるオブジェクト指向に必要な要素を実現させる カプセル化とは 学年ではなく中身では生年月日とかで情報を持っているけど その情報は教えずに何学年かという情報だけ教えたいということがある このとき外部から不必要な情報(今の例では生年月日)は直接アクセスできず アクセスが許可されている情報(今の例では学年)にのみアクセスできると 情報の安全性を保つことができる このように情報を内部に持つこと(および外部からアクセスできる情報とできない情報を管理すること) をカプセル化という 今回は学年と年齢という情報がカプセル化されたことになる
- 785 名前:takesi mailto:sage [2016/01/24(日) 20:43:43.29 .net]
- 関数は概要は理解していますが
Pythonで理解したのでコードはかけません そこは自習します
- 786 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 20:46:55.26 .net]
- 今クラスの中には名前と学年の変数(情報)がある
生徒というオブジェクトには名前を名乗るというメソッド(行動)が可能であるとしよう その場合 class Student { String name; int grade; String getName() { return "My name is " + name; } } などとしてやれば生徒オブジェクトに自己紹介をさせることが可能になる このようにカプセル化では変数だけではなく関数も内部に持たせることができる あ、あとでまとめてStudentクラスコミットするから細かいとこ気にしなくていいよ
- 787 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 20:53:04.61 .net]
- 以上のように情報を持ち行動が規定されているものをプログラミングでは
カプセル化されたオブジェクトという 課題:Studentクラスを参考にしながらTeacherクラスを作成せよ ただしTeacherクラスは名前と担当教科の情報を持ち 授業の最初に挨拶「おはようございます。(教科名)の授業を始めます」する行動 ができるものとする
- 788 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 21:01:51.47 .net]
- コミットした
プルしてね
- 789 名前:takesi mailto:sage [2016/01/24(日) 21:22:43.18 .net]
- コミットしました
書経のような感じでしたが 理解できるように考えながらコードを書きました
- 790 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 21:25:44.45 .net]
- いい感じ
続いて 課題:Teacherクラスにも自己紹介「My name is 〜〜〜」するメソッドを追加せよ
- 791 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 21:32:11.02 .net]
- やってる間に次の話題書いとく
ここでTeacherクラスにもStudentクラスにも name変数 が存在し、 getName関数 が全く同じ内容で存在することに気付く これは何度も書くのは無駄無駄無駄ァ これはなぜか考えると 生徒も教師も人である 人だから名前を持っている また自己紹介もする ということは生徒も教師も name変数 を持ち getName関数 を持つHumanクラスという風に考えられる Javaではこれを class Human { String name; String getName() { return "My name is "name; } } class Student extends Human { … } のようにする これを継承という
- 792 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 21:37:04.19 .net]
- 継承とは
基本となるクラス(基底クラス・親クラス)から それらの要素を引き継いだ新しいクラス(派生クラス・子クラス) を作ること 派生クラスでは基底クラスのメソッド以外に派生クラスで独自に追加した 変数やメソッドを利用できる また基本となるクラスには(基本的に)制限はなく 派生クラスの派生クラスといったものも作れる
- 793 名前:takesi mailto:sage [2016/01/24(日) 21:39:40.63 .net]
- >>769の通りにしているはずがコミットできません
- 794 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 21:43:37.56 .net]
- ウボァ
プルした? そのあとアップストリームへプッシュした?
- 795 名前:takesi mailto:sage [2016/01/24(日) 21:45:55.85 .net]
- アップストリームにプッシュすると
non-fast-forward と出てきます
- 796 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 21:48:17.04 .net]
- うーん
マージは?
- 797 名前:takesi mailto:sage [2016/01/24(日) 21:49:39.92 .net]
- マージすると
結果 失敗 とでます
- 798 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 21:51:26.62 .net]
- じゃあリベースは?
- 799 名前:takesi mailto:sage [2016/01/24(日) 21:56:40.77 .net]
- いじってたらしばらくして
HEAD はすでに最新の状態のためリベースは何もしませんでした と出ました
- 800 名前:takesi mailto:sage [2016/01/24(日) 21:57:58.93 .net]
- いきました!
リベースのリセット?のあとプッシュでいけました
- 801 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 21:59:14.89 .net]
- あ、きたね
じゃあ続き Humanのクラスコミットすんね
- 802 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 22:06:13.73 .net]
- pullよろ
Humanクラスについてもう一つ考えてみよう 人間には性別というものがある そこで 課題:Humanクラスにgender(性別)メンバー(変数)を追加し それを設定する関数setGenderと取得する関数getGenderを追加せよ その後Studentクラスの自己紹介でgetGenderせよ
- 803 名前:takesi mailto:sage [2016/01/24(日) 22:09:37.55 .net]
- うーむ、難しい
時間がかかりそなので宿題ということで考えておきます
- 804 名前:takesi mailto:sage [2016/01/24(日) 22:12:00.79 .net]
- >>771の通り学業が忙しため平日はあまり時間が取れません
受験が終われば時間が取れるようになるのですが…
- 805 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 22:14:06.78 .net]
- 了解
次はオブジェクト指向の続きからね 流れ 継承 ↓ 多態性(オーバーロードおよびオーバーライド) ↓ 継承その2(仮想関数) ↓ テンプレートクラス ↓ アクセス修飾子 それとは別に演習作っとく
- 806 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/24(日) 22:14:55.55 .net]
- ゆっくりで構わんよ
っていうか自分も平日疲れてすぐ寝るからそのほうがありがたい
- 807 名前:仕様書無しさん mailto:sage [2016/01/24(日) 22:55:35.64 .net]
- なにこのスレすごい
あとで読み返してみる
- 808 名前:仕様書無しさん mailto:sage [2016/01/25(月) 01:05:24.47 .net]
- String[] names = new String[]{"takesi", "John", "Suzuki"};
int[] grades = {1, 2, 3}; のほうがはるかに合理的 データ0番、1番、2番って番号で管理できる Suzukiが5人いたとしても番号が一意で分かれているから混同もしない 人間クラスから派生して生徒、教師ってのも変 役割が根本的に違うのだからそれぞれ別でいい 学校クラスがないのも変だな〜 学校クラスにそれぞれの生徒と教師がメンバとしているはずだ
- 809 名前:takesi mailto:sage [2016/01/25(月) 02:04:03.82 .net]
- 眠れないので課題やってみました
全く分かりません どこからの知識が抜けてるのやら Teacherクラスをコピペ改変したようなコードしか書けませんでした
- 810 名前:takesi mailto:sage [2016/01/25(月) 02:09:44.46 .net]
- どこを勉強すればいいのでしょうか
今日はまとまった時間が取れそうなので勉強します
- 811 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/25(月) 22:04:30.90 .net]
- あれで問題ない
最初はまねて 次は少し変えてみて 最後に自分で書けるようになればいい Exam4穴埋め式にした 何か好きなパズルとかある?それ題材にする
- 812 名前:takesi mailto:sage [2016/01/25(月) 22:08:34.00 .net]
- あれでいいんですか?!自身なかった
自分で書けるのか不安だったけど安心しました あんまりパズルはしませんが… クロスワードはやったことあります
- 813 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/25(月) 22:09:29.88 .net]
- クロスワードはちょっと向かないなぁ
数独とかカックロとか数字しか使わない系で
- 814 名前:takesi mailto:sage [2016/01/25(月) 22:14:32.67 .net]
- 数独はやったことあります
- 815 名前:takesi mailto:sage [2016/01/25(月) 22:28:17.49 .net]
- Exam4難しい‥
ちんぷんかんぷんです
- 816 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/25(月) 22:31:44.49 .net]
- じゃあオーソドックスに数独にしとこうか
平日は演習問題の形でコミットするからそれとくような感じで 休日が昨日みたいな感じで 最初は強く当たって後は流れで
- 817 名前:takesi mailto:sage [2016/01/25(月) 22:37:43.22 .net]
- 了解しました
- 818 名前:takesi mailto:sage [2016/01/25(月) 22:47:49.69 .net]
- Exam4は分かりません
どこか復習が必要でしょうか
- 819 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/25(月) 23:00:28.78 .net]
- じゃあそれは飛ばして答えコミットする
土曜はそれの解説からね
- 820 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/25(月) 23:01:26.95 .net]
- できたとこまででいいからコミットしてくれたらヒント書いて返す
- 821 名前:takesi mailto:sage [2016/01/25(月) 23:09:04.26 .net]
- 全く手を付けられませんでした
- 822 名前:仕様書無しさん mailto:sage [2016/01/26(火) 09:52:55.08 .net]
- すみません
C言語ができれば ずっと食べていけますかね? android からwindows のソフトまで作れますよね???
- 823 名前:仕様書無しさん mailto:sage [2016/01/28(木) 20:55:55.34 .net]
- なにこれ、本気で教育が始まってるの?
- 824 名前:takesi mailto:sage [2016/01/30(土) 19:17:22.28 .net]
- 受験との両立をしようと思っていたのですが
学校も忙しくなり受験も追い込み時期になったことで余裕がなくなってしまいました 3月12日から再開させてもらってもよろしいでしょうか
- 825 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/01/30(土) 21:08:54.99 .net]
- ええよ
スレなくなってたら建ててな
- 826 名前:takesi ◆5LQe9dJ7ck mailto:sage [2016/01/30(土) 21:24:27.65 .net]
- ありがとうございます
3月12日にもどってきます トリップつけときます
- 827 名前:仕様書無しさん mailto:sage [2016/01/31(日) 08:57:35.56 .net]
- >>208
ベクターとかストアに作品のせれば経験になりますか?
- 828 名前:takesi ◆5LQe9dJ7ck mailto:sage [2016/03/12(土) 07:28:09.90 .net]
- おはようございます
今日から再開お願いします 課題に手を付けます
- 829 名前:仕様書無しさん mailto:sage [2016/03/12(土) 11:53:24.79 .net]
- >>828
まずは空白期間に身に付けたスキルを洗い流したまえ
- 830 名前:takesi ◆5LQe9dJ7ck mailto:sage [2016/03/12(土) 14:32:39.08 .net]
- >>829
Unityの基本操作とC#を少々 受験が忙しくてあまり手を付けてません
- 831 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/03/12(土) 15:38:19.90 .net]
- 再開すんよ
まずExam4の解説からでおk?
- 832 名前:takesi ◆5LQe9dJ7ck mailto:sage [2016/03/12(土) 16:32:09.63 .net]
- はい、お願いします
Exam10も分かりそうにないです 11、12は今から取り組みます
- 833 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/03/13(日) 00:22:17.64 .net]
- ホワイトデーのお返し作ってて遅れた
exam4から 問 シーザー暗号を解きなさい まず手で解いてみる 一文字ずつずらしていき中に「person」があれば答え プログラムで解釈する 1.文字列をn文字ずらす 2.中にpersonが含まれるか調べる 3.含まれていればそれを表示して終了、含まれていなければnに1足して1からやり直し もう少しプログラムっぽく for (int n = 0; n < 文字の種類数; n++) { String text = n文字ずらした暗号; if (textに「person」が含まれていたら) { system.out.println(text); break; } } これを実装していくことになる
- 834 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/03/13(日) 00:32:35.66 .net]
- ・文字の種類数
まず文字のchar配列を作っておく そうすることでずらす処理や文字種数を取得するのに便利になる static final char[] chars = { 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',' ','.',',','-' }; そうしたうえで配列の要素数はlengthで取得する つまり chars.length ・n文字ずらした暗号 文字列を文字ごとに分解して分解した文字をn文字をずらす もともと暗号文はcharの配列であるので暗号文に対してforで一つずつアクセスし n文字ずらした文字を取得すればよい この最中するのが文字種数30より大きくなったaに戻ることを考慮すること これは30で割ったあまりとすれば解決できる ・textに「person」が含まれていたら StringにはindexOfというメソッドがありそれによって文字列が含まれているかどうかを調べることができる indexOfで文字列が含まれていない場合は返り値は-1になる
- 835 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/03/13(日) 00:39:43.32 .net]
- Exam10ヒント
数列の状態は int[9][9]の配列で持とうExam8参照 まずは枠線なしで数字のまま出力することを目標にする その後0だったら0でなくスペースを表示するように変更する 最後に枠線を表示する 上と下の枠線は固定で構わない 左右の枠線は数字を表示する前と後に「|」を表示すればよい 表示する関数は System.out.println() と System.out.print() だ 上は出力したら改行も出力され 下は改行は出力されない 使い分けよう
- 836 名前:takesi ◆5LQe9dJ7ck mailto:sage [2016/03/13(日) 06:51:26.23 .net]
- すみません昨日は私用で全く課題ができませんでした
今日も19時まで予定があるのでそれ以降に取り組みます 空いた時間に解説理解しておきます
- 837 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/03/13(日) 20:01:30.22 .net]
- こっちも今体空いた
次の課題とか用意しとく 終わり次第多態性についてやるよ
- 838 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/03/13(日) 20:40:52.29 .net]
- 課題1個追加した
プル忘れないでね 多態性についてやるから適当なところで切り付けて
- 839 名前:takesi ◆5LQe9dJ7ck mailto:sage [2016/03/13(日) 20:47:28.57 .net]
- 今やっと私用が終わりました
今から取り組みます
- 840 名前:仕様書無しさん mailto:sage [2016/03/13(日) 20:59:23.27 .net]
- 同じような境遇のものとして応援してます
頑張って
- 841 名前:takesi ◆5LQe9dJ7ck mailto:sage [2016/03/13(日) 21:28:43.66 .net]
- 最近の課題は僕には解けないものが多いのですが、基本がなってないのでしょうか?
やり方は分かるのですがコードに置き換えられません 今日は次の説明をお願いします 明日じっくり課題をやります
- 842 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/03/13(日) 21:55:33.42 .net]
- 単純に慣れの問題じゃないかな
写経量が少ない 今は調べてパクるだけでいい そのうちここ変えたらどうなるかなって思ったら 実際やってみて違いを調べたりしてみるとよさげ じゃあ多態性について オブジェクト指向の重要な要素の一つ多態性(ポリモーフィズム) ttp://www.nulab.co.jp/designPatterns/designPatterns1/designPatterns1-4.html#%E3%83%9D%E3%83%AA%E3%83%A2%E3%83%95%E3%82%A3%E3%82%BA%E3%83%A0 多態性とは 別のオブジェクトに対し同じ関数を定義したいことがある 例えば生徒と教室の二つのオブジェクトがあるとする この二つは共通の親クラスを持っているわけではない しかし、両方とも名前(String name)を持っており 名前を取得する共通の関数(getName)を作りたいと思っているとする この際引数として渡されるオブジェクトによって挙動を変える関数が作ることができる これを多態性という。 Javaにはオーバーライドとオーバーロードという二つの多態性の実現方法がある。 オーバーライド:二つのオブジェクトが親子(継承の親子)関係にある時親クラスで定義されたものを子クラスで再定義すること 例)HumanクラスとProfessorクラス class Human { String name; String getName() { return name; } } class Professor extends Human { String getName() { return "Prof."+name; } }
- 843 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/03/13(日) 22:04:25.17 .net]
- オーバーロード:二つのオブジェクトがどのような関係であろうとかまわないが、
同じ関数の引数として違うオブジェクトを渡した際に違う挙動を定義すること 例)ClassRoomクラスとStudentクラス String getName(ClassRoom classRoom) { return classRoom.name + " class"; } String getName(Student student) { return "student:" + student; } 以上からわかるように オーバーライドはメンバー関数のみ オーバーロードはどのような関数でもできるといった違いがある 今はそのようなものがあると知っておくだけでおk 気づかないうちに使ってて、あとからこれが多態性だったのかってなると思う
- 844 名前:t.mourning ◆HeJleJP5y2 mailto:sage [2016/03/13(日) 22:17:48.08 .net]
- 習うより慣れろ
課題:Humanクラスで実装されているメンバー関数getNameをStudentクラスでオーバーライドせよ その再表示する内容は My name is 〜〜〜 ↓ I'm 〜〜〜 にせよ 課題:PrintUtilクラスを作成せよ PrintUtilクラスには以下の二つのオーバーロードした関数を作成せよ public static void printName(Human x) { //ここに表示処理を書く } public static void printName(Teacher x) { //ここに表示処理を書く } Humanを渡した関数はnameを表示(System.out.printlnするだけ) Teacherを渡した関数はnameの前に「Mr.」をつけて表示せよ その後 Student student = new Student(); student.name = "takesi"; PrintUtil.printName(student); としてどのように表示されるか確認しその理由を考えよ
- 845 名前:仕様書無しさん [2016/03/14(月) 08:39:59.84 .net]
- 良スレage
- 846 名前:仕様書無しさん [2016/03/14(月) 11:07:56.73 .net]
- FJネクスト エフ・ジェー・ネクスト 迷惑勧誘電話7 [無断転載禁止]・2ch.net
hayabusa6.2ch.net/test/read.cgi/estate/1457609776/
- 847 名前:takasi mailto:sage [2016/03/14(月) 20:24:33.70 .net]
- お久しぶりです
職業訓練校のプログラミングコースに合格したので4月から通うことになりました たけしくん、お互いがんばりましょう
|

|