• Share
  • Email
  • Embed
  • Like
  • Private Content
Java Night Seminar for Java Begineers
 

Java Night Seminar for Java Begineers

on

  • 1,843 views

This presentation explain the Java

This presentation explain the Java

Statistics

Views

Total Views
1,843
Views on SlideShare
1,395
Embed Views
448

Actions

Likes
2
Downloads
14
Comments
0

3 Embeds 448

http://www.java-users.jp 446
http://cloud.feedly.com 1
http://feedly.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Java Night Seminar for Java Begineers Java Night Seminar for Java Begineers Presentation Transcript

    • <Insert Picture Here>超入門!はじめてみようJavaプログラミング 日本オラクル株式会社オラクルユニバーシティ渋井俊昭
    • 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。 Copyright© 2010, Oracle. All rights reserved. 2
    • Agenda •  Java って何? •  基本的なJavaプログラムの作り方 •  キャンペーンのご案内 Copyright© 2010, Oracle. All rights reserved. 3
    • Agenda •  Java って何? •  Javaって何? •  Javaテクノロジー •  プログラミング言語としてのJava •  実行環境としてのJava •  開発環境としてのJava •  Javaの構成 •  Javaのエディション •  プログラムの作成手順 •  基本的なJavaプログラムの作り方 •  キャンペーンのご案内 Copyright© 2010, Oracle. All rights reserved. 4
    • Javaって何? Java は、1995 年に Sun Microsystems から初めてリリースされたプログラミング言語およびコンピューティングプラットフォームです。ユーティリティ、ゲーム、ビジネスアプリケーションなど、最先端のプログラムの基礎となっているテクノロジです。Java は、世界中の 8 億 5000 万台を超える個人用コンピュータや、世界中の何十億台ものデバイス (モバイルデバイスや TV デバイスなど) で動作しています。 Java が必要なのはなぜですか?Java がインストールされていないと動作しないアプリケーションやWeb サイトが多数存在し、さらに毎日作成され続けています。Java は、高速、安全で、高い信頼性を持っています。ラップトップコンピュータやデータセンター、ゲームコンソールスーパーコンピュータ、携帯電話、インターネットにいたるあらゆる分野で使われています。 引用: http://www.java.com/ja/download/faq/whatis_java.xml Copyright© 2010, Oracle. All rights reserved. 5
    • Javaって何?(つづき) Java のダウンロードは無料ですか?はい、Java は無料でダウンロードできます。最新バージョンは、http://java.com で入手してください。 この辺のページも http://www.java.com/ja/ 見てみよう http://ja.wikipedia.org/wiki/Java Copyright© 2010, Oracle. All rights reserved. 6
    • Javaって何? ここにも、あそこにも Java Javaを知っているとIT分野での活躍の幅が 広がります。 Copyright© 2010, Oracle. All rights reserved. 7
    • Javaテクノロジー •  3つの側面を持つテクノロジー •  1)プログラミング言語 プログラミング言語 •  2)プログラム実行環境(JRE) •  3)プログラム開発環境(JDK) 1)プログラミング言語� 3)開発環境� 2)実行環境� プラットフォーム Copyright© 2010, Oracle. All rights reserved. 8
    • 1)プログラミング言語(としてのJava) キーワード オブジェクト指向�•  従来の言語のいいとこ取り オブジェクト�•  オブジェクト指向 属性� オブジェクト�•  豊富なAPI 操作� 属性� 操作� 操作�•  セキュリティ 従来のプログラミング� Java言語による� 豊富なAPI、ライブラリ群� 言語によるプログラム� プログラム� � 適用プログラムコード� 適用プログラムコード� � � ネット� ファイル� 日付� � ワーク� IO部品� 部品� 部品� メモリ管理用� � コード� � Java実行環境� � � メモリ管理� GUI セキュ� 通貨� � � リソース管理用� 部品� リティ� 部品� � � コード� リソース管理� 部品� � Copyright© 2010, Oracle. All rights reserved. 9
    • 2)実行環境(としてのJava) キーワード JVM (Java Virtual Machine) •  プラットフォーム非依存(Write Once, Run Anywhere) ~他言語での開発~ ~ Javaでの開発~ ソースプログラム� 移植できない ソースプログラム� 移植できる Windows用のプログラムは プラットフォームの違いは コンパイル� コンパイル� JVMが吸収してくれる × Linux上では動かない アプリケーション� (マシンコード)� アプリケーション� (マシンコード)� Javaアプリケーション� (バイトコード)� JRE(JVM) ○ Javaアプリケーション� (バイトコード)� JRE(JVM) プラットフォームB� プラットフォームA� � プラットフォームB� プラットフォームA� Windows� Linux� Copyright© 2010, Oracle. All rights reserved. 10
    • 2)実行環境(としてのJava) Write Once, Run Anywhere のすごさ。 開発会社 プラットフォームが変わっても、プログラムを変更しなくて良い。 →変更のためのプロジェクト、テストなどに莫大な出費をしなくて良い。 同じアプリケーションを様々なお客様へ展開できる。 →販売効率の向上 H/W, OSに依存した開発者を育成しなくて良い。 → アプリケーションを、Windows, Linux, HP-UX, AIX等様々な環境で   動くようにするため重複した人財が必要 顧客 H/W, OSメーカが無くなっても、既存資産をそのまま他のOS上に移せばOK。 → ベンダー依存リスクの低減 もっと早い環境が出てきたときに、すぐに乗り換えられる。 →より効果的な環境への変更が従来より容易 Copyright© 2010, Oracle. All rights reserved. 11
    • 3)開発環境(としてのJava) キーワード 道具はそろっています Javaソースコード� import java.util.*; public class Vehicle {
 コンパイル� String id ;
 int price ;
 Java int sales [ ] ;
 
 アプリケーション� totalSales ( ) {
 ・・・� } � ドキュメントジェネレータ� ( javadoc.exe )� コンパイラ� ( javac.exe )� インタプリタ� ( java.exe )� デバッガ� ( jdb.exe )� Java開発環境� 実行� デバッグ実行� JRE(JVM)�API ドキュメント�( HTML 形式)� � プラットフォーム� Copyright© 2010, Oracle. All rights reserved. 12
    • Javaの構成 •  JDK : Java Development Kit •  JRE : Java Runtime Environment JDK•  JVM : Java Virtual Machine JRE JVM Java APIを含む� 開発ツールを含む� (javac,javadoc等)� Copyright© 2010, Oracle. All rights reserved. 13
    • Javaの構成 2つの言葉を覚えましょう。 •  JRE(Java Runtime Environment) じぇい・あーる・いー •  Javaの実行環境(プログラムを動かす際に必要)   →ランタイムライブラリ 人が作ったプログラムを動かすなら JREをダウンロードしよう! • JDK(Java Development Kit) じぇい・でぃー・けー     Javaの開発環境(プログラムを開発する際に必要)  →開発のためのツール(コンパイラ、ソース、ドキュメント)   が含まれている。  →JREも含まれている。(開発時に実行するので) これから開発を行うときはJDKをダウンロードしよう! Copyright© 2010, Oracle. All rights reserved. 14
    • Javaのエディション Java SE
 (Java Platform, Standard Edition) 基本的な機能が入っています。スタータパックみたいなもの。 Java EE
 (Java Platform, Enterprise Edition) 企業システム・業務アプリケーションに必要な部品集。 アプリケーションサーバにはこれが付いてきます。 Java ME
 (Java Platform, Micro Edition)� 携帯電話、テレビなどでJavaを使えるようにしたミニセット。 組み込み機器などで利用されます。 Copyright© 2010, Oracle. All rights reserved. 15
    • Javaの構成 •  Java SE: Java Platform, Standard Edition •  Java EE : Java Platform, Enterprise Edition •  Java ME : Java Platform, Micro Edition Java EE ビジネス向け部品 JDK JRE Java SE JVM Java APIを含む� 開発ツールを含む� (javac,javadoc等)� Copyright© 2010, Oracle. All rights reserved. 16
    • プログラムの作成手順 Java ソースプログラム� prompt> javac Hello.java ( Hello.java )� public class Hello { � ディスク� public static void � main(String[ ] args) { プログラムの実行 System.out.println("
 � クラスファイル( Hello.class )� � Hello Java!!");; ライブラリ� ・・・� } ②コンパイル� �� 00FF 01AF 001E 00BF 開発者� ①プログラム� } FF01 047A 0BBD FF03 � � 作成� � 中間コード ③ プログラム起動� Helloクラス� � ロード� � Mainクラス� ��00FF 01AF 001E 00BF ��FF01 047A 0BBD FF03 Nativeコードに逐次 JVM 変換しながら実行 �OS OS クラスがロードされ� プログラム実行� Copyright© 2010, Oracle. All rights reserved. 17
    • 簡単なプログラムの例 Hello.java 1. class Hello { ←エディタでJavaプログラムを作成します。 2. public static void main(String[] args) { ① 3. 4. 5. } } System.out.println("Hello Java!!"); ※豆知識1:ファイル名とクラス名は大文字小文字含めて一致。 ※豆知識2:Java言語は大文字小文字を厳格に区別します。② > javac Hello.java ←コンパイルします。 > dir 2011/02/24 11:02 416 Hello.class ←.java から .classが 2011/02/24 11:00 107 Hello.java   作成されました。 ③ > java Hello Hello Java!! ←クラスファイルを実行して結果が表示されました。 Copyright© 2010, Oracle. All rights reserved. 18
    • (補足)実際の開発 実際の開発では、 IDE:Integrated Development Environment (統合開発環境) を利用して、効率の良い開発が行われます。(内部的にJDKのツールを利用) ねこびーん Netbeans http://ja.netbeans.org/ http://www.eclipse.org/ Eclipse http://mergedoc.sourceforge.jp/ http://www.oracle.com/technetwork/jp/developer- JDeveloper tools/jdev/overview/index.html Copyright© 2010, Oracle. All rights reserved. 19
    • Agenda •  Java って何? •  基本的なJavaプログラムの作り方 •  オブジェクト •  クラス •  Javaプログラムの構成 •  クラス定義 •  オブジェクト生成とアクセス •  メソッドのオーバーロード •  オブジェクトの初期化 •  コンストラクタ •  カプセル化とデータ隠蔽 •  アクセス修飾子 •  キャンペーンのご案内 Copyright© 2010, Oracle. All rights reserved. 20
    • オブジェクト 人間が物事を捕らえるのとキーワード オブジェクト指向 同じように設計でき、 その概念のままプログラムに 表現することが出来る。 •  オブジェクト=Object=「もの」 •  オブジェクトの種類 •  実在するもの : 車、自転車、ノート、パソコン etc. 社員オブジェクト •  概念的なもの : 社員、銀行口座 etc. 社員ID 1001 •  オブジェクトが持つもの 社員名 属性
 山田 (変数) •  属性:特性、状態を表す(変数) •  操作:動作、ふるまいを表す(メソッド) 社員IDを取得する 操作
 社員IDを設定する (メソッド) Copyright© 2010, Oracle. All rights reserved. 21
    • クラス •  オブジェクトが持つ概念(属性や操作)を定義したもの •  オブジェクトを作成するためのひな形(テンプレート) 社員という概念は 社員クラス class 社員 {
 こう定義しますよ。 田中さんは、具体的には 社員ID
 社員名
 鈴木さんは、具体的にはこういう社員です。 
 社員IDを設定する
 こういう社員です。 社員IDを取得する
 インスタンス化 インスタンス化 社員名を設定する
 社員名を取得する
 suzuki社員
tanaka社員
 } オブジェクト オブジェクト 社員ID 1 社員ID 2 属性(変数) 属性(変数) 社員名 tanaka 社員名 suzuki 社員IDを取得する 社員IDを取得する 操作(メソッド) 操作(メソッド) 社員IDを設定する 社員IDを設定する クラス(ひな形)に具体的な情報を入れて、オブジェクト(実体)を作ることを「インスタンス化」という。 Copyright© 2010, Oracle. All rights reserved. 22
    • Javaプログラムの構成 •  Javaプログラムはクラスの集合で構成 class クラス名 { クラス定義の始まり 属性(変数) 操作(メソッド) } クラス定義の終わり class クラス名 { クラス定義の始まり public static void main(String[ ] args) { // 処理内容 main()メソッドの定義 } } クラス定義の終わり Copyright© 2010, Oracle. All rights reserved. 23
    • クラス定義 実際のシステムでは、 クラスをたくさん作り •  クラスという単位でプログラムを作成 ます。 •  クラスとは独自のデータ型のようなもの 例: class クラス名 { class Employee { // インスタンス変数の定義
 int empId; // インスタンス変数の定義
 [修飾子] データ型 インスタンス変数名; // メソッドの定義
 int getEmpId() { return empId; // メソッドの定義
 } [修飾子] 戻り値の型 メソッド名(引数リスト) {     // 処理内容
 void setEmpId(int id) { } empId = id; }} } Copyright© 2010, Oracle. All rights reserved. 24
    • オブジェクト生成とアクセス 1.  オブジェクトを生成し、参照するための変数に代入
   クラス名 参照変数名 = new クラス名( );  2.  . (ドット)演算子を使用してアクセス
   参照変数名.インスタンス変数名
 参照変数名.メソッド名( )class Employee { // インスタンス変数の定義
 「new」はクラスから int empId; オブジェクトを作り出 //メソッド定義
 int getEmpId() { return empId; } すおまじない }class UseEmployee { public static void main(String[ ] args) { // オブジェクトの生成
 int empId Employee emp = new Employee(); //変数へアクセス(参照変数名.変数名) 
 emp.empId = 1; getEmpId( ) { //メソッドへアクセス(参照変数名.メソッド名) 
 return empId;  int id = emp.getEmpId(); } }} 戻り値: 1 emp Copyright© 2010, Oracle. All rights reserved. 25
    • サンプル 1. class Employee { 2. // インスタンス変数の定義 3. int empId; // 社員ID 4. String empName; // 社員名 5. 6. // メソッドの定義 7. void setData(int id, String name) { //インスタンス変数に値を設定するメソッド 8. empId = id; 9. empName = name;10. }11. int getEmpId() { // 社員IDを取得するメソッド 12. return empId;13. }14. String getEmpName(){ // 社員名を取得するメソッド 15. return empName;16. }17. } Copyright© 2010, Oracle. All rights reserved. 26
    • サンプル 18. class CreateSample {19. public static void main(String[] args) {20. Employee emp1 = new Employee(); // Employeeオブジェクトの生成 21. emp1.setData(1, "Tanaka"); // setData()メソッドの呼び出し 22. System.out.println("Employee ID : " + emp1.getEmpId());23. System.out.println("Employee Name : " + emp1.getEmpName());24.25. Employee emp2 = new Employee(); // Employeeオブジェクトの生成26. emp2.setData(2, "Suzuki"); // setData()メソッドの呼び出し 27. System.out.println("Employee ID : " + emp2.getEmpId());28. System.out.println("Employee Name : " + emp2.getEmpName());29. }30. }> java CreateSampleEmployee ID : 1Employee Name : TanakaEmployee ID : 2Employee Name : Suzuki Copyright© 2010, Oracle. All rights reserved. 27
    • メソッドのオーバーロード •  同一クラス内に同名のメソッドを定義すること •  オーバーロードのルール •  引数の数、型が異なっていること class Employee {
 int empId;
 String name;
 //引数を取らないsetData()メソッド
 void setData() { empId = 100; }
 // 引数を1つ取るsetData()メソッド
 void setData(int id) { empID = id; }
 :
 } setData( ) { empId = 100; } class UseEmployee {
 :
 setData(int id) { empId = id; } // オブジェクトの生成
 Employee emp = new Employee();
 // メソッド呼び出し
 emp.setData( );
 emp.setData(1); 
 emp } Copyright© 2010, Oracle. All rights reserved. 28
    • サンプル 1. class Employee { 2. // インスタンス変数の宣言 3. int empId; 4. String empName; 5. // 引数を1つ取るsetData()メソッド 6. void setData(int id) { 7. empId = id; 8. empName = "unknown"; 9. }10. // 引数を2つ取るsetData()メソッド 11. void setData(int id, String name) {12. empId = id;13. empName = name;14. }15. void display() {16. System.out.println("Employee ID : " + empId);17. System.out.println("Employee Name : " + empName);18. }19. } Copyright© 2010, Oracle. All rights reserved. 29
    • サンプル 20. class OverloadSample {21. public static void main(String[] args) {22. Employee emp1 = new Employee();23. emp1.setData(1); // 引数を1つ取るsetData()メソッドの呼び出し 24. emp1.display();25.26. Employee emp2 = new Employee();27. emp2.setData(2, "Suzuki"); // 引数を2つ取るsetData()メソッドの呼び出し 28. emp2.display();29. }30. }> java OverloadSampleEmployee ID : 1Employee Name : unknownEmployee ID : 2Employee Name : Suzuki Copyright© 2010, Oracle. All rights reserved. 30
    • オブジェクトの初期化 •  オブジェクト生成時に自動的に初期化 •  デフォルトの初期値 データ型 初期値 byte 0 short 0 int 0 long 0 float 0.0f double 0.0d char u0000 boolean false 参照型 null Copyright© 2010, Oracle. All rights reserved. 31
    • コンストラクタ •  オブジェクトを初期化するための処理ブロック •  オブジェクト生成時に一度だけ呼び出される •  定義ルール •  クラス名と同じ名前 •  戻り値を持たない(戻り値の型宣言もなし) •  引数を持つことが可能 •  オーバーロード可能 
 Employee() { empId = 100; } // 引数を取らないコンストラクタ
 Employee(int id) { empId = id; } //引数を1つ取るコンストラクタ Copyright© 2010, Oracle. All rights reserved. 32
    • コンストラクタの呼び出し •  オブジェクト生成時に呼び出される
   new クラス名(引数リスト); int empId 100class Employee {
 int empId;
 Employee() { empId = 100; } //コンストラクタ
 emp Employee() { empId = 100; }
 Employee(int id) { empId = id; } Employee(int id) { empId = id; } ;
  }
} class UseEmployee {
 :
 int empId 101 // コンストラクタ呼び出し
 Employee emp = new Employee();
 Employee() { empId = 100; } Employee emp2 = new Employee(101);
 :
 Employee(int id) { empId = id; }} emp2 Copyright© 2010, Oracle. All rights reserved. 33
    • デフォルトコンストラクタ コンストラクタは必ず必要 しかし、開発者が書かないでいると、 コンパイル時に自動生成してくれます。 このコンストラクタのことを デフォルトコンストラクタ といいます。 Copyright© 2010, Oracle. All rights reserved. 34
    • サンプル 1. class Employee { 2. // インスタンス変数の宣言 3. int empId; 4. String empName; 5. // 引数を1つ取るコンストラクタ 6. Employee(int id) { 7. empId = id; 8. empName = "unknown"; 9. }10. // 引数を2つ取るコンストラクタ 11. Employee(int id, String name) {12. empId = id;13. empName = name;14. }15. void display() {16. System.out.println("Employee ID : " + empId);17. System.out.println("Employee Name : " + empName);18. }19. } Copyright© 2010, Oracle. All rights reserved. 35
    • サンプル 20. class ConstSample {21. public static void main(String[] args) {22. // 引数を1つ取るコンストラクタの呼び出し
23. Employee emp1 = new Employee(1);24. emp1.display();25.26. // 引数を2つ取るコンストラクタの呼び出し
27. Employee emp2 = new Employee(2, "Suzuki");28. emp2.display();29. }30. }> java ConstSampleEmployee ID : 1Employee Name : unknownEmployee ID : 2Employee Name : Suzuki Copyright© 2010, Oracle. All rights reserved. 36
    • カプセル化とデータ隠蔽 •  カプセル化とは
 オブジェクト内に属性(変数)とそれに対する操作(メソッ ド)をひとつにまとめて持たせること •  データ隠蔽
 あるオブジェクト内の変数やメソッドに対するアクセスを 制限すること アクセス拒否 非公開 社員ID特定のメソッドから 社員IDを取得する アクセス可能 公開 しか操作できない。だから、安全! 社員IDを設定する アクセス可能 Copyright© 2010, Oracle. All rights reserved. 37
    • アクセス修飾子 •  データ隠蔽を実現するために使用する修飾子 •  public : どこからでもアクセス可 •  private :変数およびメソッドが定義されたクラス内の
      メソッドからのみアクセス可能 private int empId emp.empId = 1; // NG public setEmpId(int id) { emp.setEmpd(1) ; // OK empId = id; } emp Copyright© 2010, Oracle. All rights reserved. 38
    • サンプル 1. class Employee { 2. public int empId; // public 変数 3. private String empName; // private 変数 4. 5. public Employee(int id, String name) { 6. empId = id; 7. empName = name; 8. } 9.10. public int getEmpId() {11. return empId;12. }13.14. public String getEmpName() {15. return empName;16. }17.18. } Copyright© 2010, Oracle. All rights reserved. 39
    • サンプル 19. class AccessSample {20. public static void main(String[] args) {21. Employee emp1 = new Employee(1, "Tanaka");22.23. // インスタンス変数の適切な取得方法 24. System.out.println("Employee ID : " + emp1.getEmpId());25. System.out.println("Employee Name : " + emp1.getEmpName());26.27. // エラーにはならないが、不適切な取得方法 28. System.out.println("Employee ID : " + emp1.empId);29.30. // private 変数にアクセスしているため、コンパイルエラー 31. // System.out.println("Employee Name : " + emp1.empName);32. }33. }> java AccessSampleEmployee ID : 1Employee Name : TanakaEmployee ID : 1 Copyright© 2010, Oracle. All rights reserved. 40
    • まとめ 超入門!はじめてみようJavaプログラミング Java って何? 基本的なJavaプログラムの作り方 参考URL Oracle Technology Network http://www.oracle.com/technetwork/jp/index.html Oracle Technology Network の Javaに関する情報 http://www.oracle.com/technetwork/jp/java/index.html Copyright© 2010, Oracle. All rights reserved. 41
    • Agenda •  Java って何? •  基本的なJavaプログラムの作り方 •  キャンペーンのご案内 Copyright© 2010, Oracle. All rights reserved. 42
    • Java認定資格が新しくなりました •  (Bronze) → Silver → Gold の積み上げ式に 任意 旧資格(~SE 6) 移行可能!! 任意 必須 新資格(SE 7~) Bronze, Silverどちら からでもスタート可能 Copyright© 2010, Oracle. All rights reserved.
    • キャンペーンのご案内 •  3月末までのOCJP Silver SE 7 試験合格者の 成績上位20名様に無償受験チケットプレゼント!! •  詳しくはOracle University の キャンペーンページ をご確認ください。 Copyright© 2010, Oracle. All rights reserved.
    • Copyright© 2010, Oracle. All rights reserved.
    • Copyright© 2010, Oracle. All rights reserved. 46