比較プログラム言語論 平成16年7月21日 森田 彦.

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

Ver 準備 Java フォルダに移動して …… mkdir Swing Swing フォルダに移動して …… cp ~gundam/Java/Swing. コマンドプロンプト ( JDK ) でないと起動 しないので注意!!!
情報システムプロジェクト I 第2回 FileScanner.java ~ファイル入力、文字切り出し機能を持つ プログラムの作成~
社会人学習講座 「Javaプログラミング概論」
本日のスケジュール 14:45~15:30 テキストの講義 15:30~16:15 設計レビュー 16:15~16:30 休憩
         第9回 Swing.
プログラミング 平成24年10月16日 森田 彦.
Java I 第2回 (4/18)
Applet 岡部 祐典 鈴木 敬幸.
比較プログラム言語論 平成17年7月20日 森田 彦.
JAVA GUIプログラミング 第1回 JAVAの実行 絵を描こう.
アルゴリズムとデータ構造1 2007年6月12日
アルゴリズムとプログラミング (Algorithms and Programming)
Javaのインタフェース についての補足 2006年5月17日 海谷 治彦.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
応用情報処理V 第1回 プログラミングとは何か 2004年9月27日.
第14回 GUIの構成とイベント・ドリブン ~GUIを使ったプログラム(Ⅰ)~.
CGプログラミング論 平成28年4月27日 森田 彦.
変数のスコープの設計判断能力 を育成するプログラミング教育
社会人学習講座 「Javaプログラミング概論」
応用情報処理V 第1回 プログラミングとは何か 2003年9月29日.
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
第11回 GUI(グラフィカル・ユーザ・インターフェース)の設計
プログラミング 平成24年10月30日 森田 彦.
プログラミング演習3 第2回 GUIの復習.
データ構造とアルゴリズム論 第2回目テスト 平成15年12月9日 森田 彦.
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
プログラミング 平成25年11月5日 森田 彦.
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向基礎学習Ⅱ 平成20年7月1日 森田 彦.
オブジェクト指向基礎学習Ⅱ 平成19年6月20日 森田 彦.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
第6回 2007年6月1日 応用Java (Java/XML).
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
ソフトウェア制作論 平成30年12月5日.
プログラミング演習3 第2回 GUIの復習.
データ構造とアルゴリズム論 第3章 ファイルを用いたデータ入出力
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
WEBアプリケーションの開発 2002年度春学期 大岩研究会2.
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
プログラミングⅠ 平成30年10月15日 森田 彦.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
プログラミングⅠ 平成30年10月22日 森田 彦.
オブジェクト プログラミング 第2回 プログラムの基本.
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
本日のスケジュール 14:45~15:30 講義 15:30~16:15 企画書レビューシート記入 16:15~16:30 休憩
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
オブジェクト指向言語論 第十二回 知能情報学部 新田直也.
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
ソフトウェア制作論 平成30年11月28日.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
Javaを用いたシューティングゲーム作成
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
プログラミング 平成28年10月25日 森田 彦.
情報処理の概念 #0 概説 / 2002 (秋) 一般教育研究センター 安田豊.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
Presentation transcript:

比較プログラム言語論 平成16年7月21日 森田 彦

レポート(7/14)総括 現職SEへのインタビュー Java言語の評価(位置づけ)は? JBuilderのメリット < テーマ >  < テーマ >  本日の講義で、あなたが最も興味を持った点はどのような点ですか?講義の全体的な感想と共に、できる限り具体的に、200字~400字程度で記述して下さい。 <論点の構成>  ソフトウェア開発現場への関心  現職SEへのインタビュー  Java言語の評価(位置づけ)は?  JBuilderのメリット

ソフトウェア開発現場への関心 実際の企業などにおいてプログラミングの作業がどのようにされているのかなどについて興味があるので聞けたらいいなと思っています。 ソフトウェア危機について。なんでもソフトウェア開発はものすごい勢いで発展しているため、現在企業に雇われるプログラマーは即戦力の使い捨てで、次々に新しいプログラムが登場し、激務でその新たなプログラムを勉強する暇もないのだと聞いたのですがどうなんでしょう。読んで「そこまでひどいものか?」と内心疑っていますが。 ある企業のSEに実状を聞いてみました。

あるベテランSEへのインタビューから 1.SEの研修体制は? 2.SEという職業の魅力は? 3.SEになりたい人へのメッセージ

1.ある企業のSE研修体制 新人を育てることは重要→研修はみっちりやる! 4~7月 研修期間 4~7月 研修期間   基礎トレーニング (接客の仕方、電話での応対の仕方、レポートの書き方等々)   プログラム、ネットワーク、セキュリティなどの学習 7月 配属 → 2年間は先輩SEの指導によるOJT期間 1年度目末・2年度目末に成果発表会 OJTの2年間でプログラミング、データベース、ネットワーク等を学ぶが、教えるのは基礎のみ。→後は自分でつかみ取る必要がある 新人を育てることは重要→研修はみっちりやる!

2.SEの魅力は? ハイリスク・ハイリターンな職業!? 厳しい仕事なのは間違いない。特に納期前の作業は確かにハード! しかし、自分(達)が作成したシステムが稼働したときの達成感は何ものにも代え難い。 システムを一つ作ると・・・また次のシステムを作りたくなる。→モノ作りはやめられない! モノ作りのためには最先端の技術動向を把握する必要がある。 大変だが、それを獲得して行くことで、自分自身の成長を実感できる。 ハイリスク・ハイリターンな職業!?

3.SEになりたい人へのメッセージ 若い人にチャレンジして欲しい! まず、コンピュータが好きなことが第一要件。 共同で作業を進めるのでコミュニケーション力は重要。 プログラミング、データベース、ネットワークそしてセキュリティの問題など、勉強すべき点は数多くある。それらを、主体的に勉強することが必要。 進展が激しい分野なので、常に勉強が必要。→ 勉強する人は伸びる。逆に、勉強をやめた人はそこまでで終わる。 それがはっきりと出る(見える)職業。 意欲のある人には、大変やり甲斐のある職業! 若い人にチャレンジして欲しい!

Java言語の評価(位置づけ)は? Javaの現状について(一般的な評価、利用方法など)講義していただけると嬉しいです。 個人的な興味という面もありますが就職活動を控えて、現場でどのような使われ方がしているのかや、需要と供給の移り変わりなど、Javaの世間的な評価も知ってみたいなと少し思いました。 SEの人に聞いてみました。

Java言語の評価(SEの人に聞きました) しかし、Java言語の持つ、“プラットフォームに依存しない”、つまりどのOSでも動作する、というアーキテクチャは、今やスタンダード! 仮にJava言語が何かに移り変わっても、その性質は今後も引き継がれるだろう。 なお、現場のSEは特定の言語にはこだわっていません。言語は道具だから・・・。

JBuilderのメリット JAVA言語のデメリットにあげられた。『オブジェクト指向の独特の記述が初心者には理解困難。』 『クラスライブラリの全体像の把握することが困難。』の二つであるが、(開発)ツールの側で解決できないかと考えた。 すぐにJBuilderなどに、先を越されていることに気付いた。記述問題に関して、エラーやおかしな文を指摘し、全体像に関しても、繋がりがわかりやすいようにしてある。 JAVA言語の特徴や、オブジェクト指向を、半期講義を受けて、ようやくツール設計の必然性に気付けた。 プログラミングの授業などでJavaを使ってきていますが、実際にFrameのほうは使いますが、Applicationのほうはいつもまったく触れないので、何に使えるのかと思っていましたが、今日の授業でフレームを作るのにApplicationが使われるという話をしていて、何気なく出来ていたフレームがApplicationで作られていたのだと初めて知りました。

JBuilderのメリットを理解するためには? 一つ提案というか…最初のプログラミングの時に、コマンドプロント上で文字が表示される、簡単なプログラムを書いたじゃないですか。あれを改良…というわけではないですが、灰色の四角を表示するくらいまでのものにしてもいいのではないかと。HTMLタグは打ち込んで表示の操作をすると結果がすぐに分かります。 そのように、ある程度視覚化できるレベルまでをテキストエディタから作ってみたほうがより分かりやすいのではないかと思います。

Javaプログラミング総復習 <本日のテーマ> <内容> JBuilderを用いて行ってきたフレームの生成やイベント処理などを、(JBuilderに頼らず)最初から記述してみる。 その過程を通じてJBuilderの機能のメリットを理解する。 <内容> mainクラスの定義 フレームの生成 mainクラスとフレームクラスの役割分担 ボタンとテキストフィールドの貼り付け イベント処理の実装① イベント処理の実装②

1.mainクラスの定義 コンストラクタ省略可 mainメソッドの定義:一つの処理に対し必ず一つ定義する。 class FrameApplication { public FrameApplication() { } public static void main(String[] args) { System.out.println("実行成功!"); コンストラクタ省略可 mainメソッドの定義:一つの処理に対し必ず一つ定義する。 FrameApplication.javaとして保存 以下、作成したファイルやフォルダが、javac.exeやjava.exeなどのJava翻訳システムがあるフォルダにあるものとして話を進める。

mainクラスの翻訳・実行 ① バイトコードへの変換(翻訳) ② バイトコードの実行 実行結果!

2.フレームの生成 フレームクラスはjavax.swingパッケージにある import javax.swing.*; class FrameApplication { public static void main(String[] args) { JFrame frame=new JFrame(); frame.setSize(300,200); frame.setTitle("自作のフレーム"); frame.setLocation(100,50); frame.setVisible(true); } フレームオブジェクトの生成 フレームの幅wと高さhを設定 w  h 表示位置(x,y)の設定 x  y フレームを表示させる

フレームの生成→実行 200 300 プログラムの終了処理を記述しなければならない。 50 100 ※ ×をクリックしても、ウィンドウは閉じるがプログラムの実行は終了しない。 プログラムの終了処理を記述しなければならない。

3.mainクラスとフレームクラスの役割分担 <準備> 適当なフォルダ、例えばframesampleというフォルダを作る。 その中にFrameApplication.javaを移動する。 同フォルダ内に、フレームを定義するFrame1.javaを作る。 framesample FrameApplication.java Frame1.java パッケージ フレームを生成 フレームを定義

Frame1.java JFrameを継承 パッケージの指定 package framesample; import javax.swing.*; import java.awt.event.*; class Frame1 extends JFrame { public Frame1() { ・・・ } //ウィンドウが閉じられたときに終了するようにオーバーライド protected void processWindowEvent(WindowEvent e) { ウィンドウ(フレーム)の終了処理のために必要 JFrameを継承 コンストラクタ フレームの初期処理

FrameApplication.java JBuilderで皆が意識しなかった理由 package framesample; class FrameApplication { public static void main(String[] args) { Frame1 frame=new Frame1(); frame.setLocation(100,50); frame.setVisible(true); } これで、FrameApplication.javaはいじる(変更する)必要がなくなる。 JBuilderで皆が意識しなかった理由

4.ボタンとテキストフィールドの貼り付け <Frame1.java> class Frame1 extends JFrame { private JPanel contentPane; private JTextField TField1 = new JTextField(); private JButton Btn1= new JButton(); public Frame1() { contentPane = (JPanel) this.getContentPane(); contentPane.setLayout(null); TField1.setBounds(20,10,200,25); contentPane.add(TField1); Btn1.setBounds(20,60,120,25); Btn1.setText("自作ボタン"); contentPane.add(Btn1); this.setSize(300,200); this.setTitle("自作のフレーム"); } テキストフィールドの貼り付け ボタンの貼り付け

5.イベント処理の実装① イベントリスナの登録 メソッドの上書き(定義) ボタンをクリックした時に、テキストフィールドに「イベント処理成功!」という文字を表示させるには・・・ 以下の部分を加える。 イベントリスナの登録 public Frame1() { ・・・ this.setTitle("自作のフレーム"); Btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TField1.setText("イベント処理成功!"); } }); リスナインタフェース メソッドの上書き(定義)

6.イベント処理の実装② メソッドに置き換える public Frame1() { this.setTitle("自作のフレーム"); ・・・ this.setTitle("自作のフレーム"); Btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { TField1.setText("イベント処理成功!"); } }); Btn1_actionperformed(); メソッドに置き換える public void Btn1_actionperformed() { TField1.setText("イベント処理成功!"); }

関連する質問:開発手法とは? 様々な職種で役割分担を行い、効率をあげているのはあたりまえであるが、開発現場でも行われていることに興味を持ちました。(中略) しかし、プログラマによってクラスの設計や継承が異なるので共有しにくい欠点があったことや現在は開発手法が整備されルールが共有されていることに疑問を感じました。ルールとはどのようなものがあるのでしょうか? JBuilderは、標準的なJavaプログラミングの手法を、ある意味で強制している。それにより、個々が開発したプログラム(クラス)の共有を促進している。→一つの開発ルールの提示

第14回目レポート HPに自由掲示板を開設(6/24) 各自活用して下さい。 これまで(3ヶ月にわたって)本講義を受けてみての感想を、特にあなたが興味を持った点を中心に400~800字程度で記述して下さい。もちろん、講義に対する意見や要望を含めても結構です。 上に加えて、後輩(来年度以降、本講義を受講する学生)へのメッセージを記述して下さい。短くても結構です。後輩達が、本講義を選択する際の参考になるようなメッセージをお願いします。よくまとまったメッセージはHPに掲載しておきます。 提出先:hiko@edu.sgu.ac.jp  件名:「学籍番号(半角)+半角空白+氏名」を記入して下さい。    例) s02xxx 学院太郎 HPに自由掲示板を開設(6/24) 各自活用して下さい。

コンストラクタの記述 class Frame1 extends JFrame { public Frame1() { this.setSize(300,200); this.setTitle("自作のフレーム"); }   ・・・ これにより、フレームが生成されるときに、その大きさとフレームタイトルが設定される。

フレームの終了処理 ×を選択した場合 メソッドの上書き→終了処理を加える。 プログラムを終了させる。 //ウィンドウが閉じられたときに終了するようにオーバーライド protected void processWindowEvent(WindowEvent e) { if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } ×を選択した場合 プログラムを終了させる。 メソッドの上書き→終了処理を加える。