Top Banner
XMLPro 17 回回 1
39

基礎構文班 17回目 クラスとメソッド

Aug 02, 2015

Download

Technology

XMLProJ2014
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 基礎構文班 17回目 クラスとメソッド

XMLPro 17 回目

1

Page 2: 基礎構文班 17回目 クラスとメソッド

前回の復習メソッド

2

Page 3: 基礎構文班 17回目 クラスとメソッド

はじめに• プログラムでは同じような処理を何度も記

述しなければならないことがあります

• そんな処理を一つの機能としてまとめて、必要に応じて利用できるようにしておくと便利です。

↓• その纏めた処理の塊をメソッドといいます

3

Page 4: 基礎構文班 17回目 クラスとメソッド

4

↓main メソッド!!

↓ 作ったメソッド!!

← メソッドを呼び出す

Page 5: 基礎構文班 17回目 クラスとメソッド

実行• 実行すると・・・

5

Page 6: 基礎構文班 17回目 クラスとメソッド

メソッドが呼び出されると・・・• ① 普通の出力

• ② ← メソッドの呼び出し

 メソッドの中身を処理

6

Page 7: 基礎構文班 17回目 クラスとメソッド

動作の流れ

7

←①

←② メソッドが呼び出されたとき そのメソッドの中の処理実行

Page 8: 基礎構文班 17回目 クラスとメソッド

本日の内容

クラスについて 文字化けについて補完機能

8

Page 9: 基礎構文班 17回目 クラスとメソッド

文字化けについて*エクリプスで文字列入れたとき文字化けする人は eclipse.exe と同じ階層にあるeclipse.ini をメモ帳で開いて

-Dfile.encoding=utf-8 を追加してみてください その後再起動

9

Page 10: 基礎構文班 17回目 クラスとメソッド

クラスとは• クラスはメソッド ( 機能 ) とフィールド

( 変数のこと ) の固まりです

• メソッド ( 機能 ) とフィールド ( 変数のこと ) のことをクラスのメンバといいます

10

Page 11: 基礎構文班 17回目 クラスとメソッド

クラスにはメソッド書けますStatic は必要ない ( 普通は )

例 )class クラス名 {

public void メソッド () {

}}

11

Page 12: 基礎構文班 17回目 クラスとメソッド

クラスにはフィールド ( 変数 ) 書けます

いつもの変数の宣言の後ろに、「 public 」をつけて記述してください例 )class クラス名 {

public int a;public int b;

}

12

Page 13: 基礎構文班 17回目 クラスとメソッド

だいたいこんな形になります例 )class クラス名 {

public int a;public int b;

public void メソッド () {

}

public int メソッド 2() {return ***;

}

}

13

Page 14: 基礎構文班 17回目 クラスとメソッド

だいたいこんな形になりますclass クラス名 {フィールド 1 フィールド 2 ...

メソッド 1 メソッド 2 ... }

14

Page 15: 基礎構文班 17回目 クラスとメソッド

クラス作ってみよう• 新しくクラス (java ファイル ) を作成

• ファイル > 新規 > クラスを選択でも同じ

15

Page 16: 基礎構文班 17回目 クラスとメソッド

Sample1_Sub

16

Page 17: 基礎構文班 17回目 クラスとメソッド

他のクラスを使うためには// この処理をクラスのインスタンス化といいますクラス名 変数名 = new クラス名 ();

// 他のクラスのメソッドを扱うには変数名 . メソッド名 ();

// 変数をつかいたいときは変数名 . フィールド ( 変数名 );

で使うことができます

17

Page 18: 基礎構文班 17回目 クラスとメソッド

ん?

覚えがあるような・・・

18

Page 19: 基礎構文班 17回目 クラスとメソッド

見たことあるよね?クラス名 変数名 = new クラス名 ();変数名 . メソッド名 ();

19

Page 20: 基礎構文班 17回目 クラスとメソッド

というわけで Scanner とかはクラス使ってたのです!!

変数名のあとに .next() とかはそのクラスの中に入っているメソッド

を呼び出しているのです

20

Page 21: 基礎構文班 17回目 クラスとメソッド

メソッドの書き方の例 修飾子 戻り値の型 メソッド名 ( 引数 1, 引数 2, ....){ }

① 戻り値なしpublic void show() {

}

② 戻り値あり  * 文字列を返したいときは””で囲うこと

public int sum() {return ******;

}

21

Page 22: 基礎構文班 17回目 クラスとメソッド

実際に使ってみよう

クラス名 変数名 = new クラス名 ();で準備

変数名 . メソッド名 ();で呼び出し

22

Page 23: 基礎構文班 17回目 クラスとメソッド

書いてみて S1_Main

23

Page 24: 基礎構文班 17回目 クラスとメソッド

S1_Main

24

← 使いたいクラス  の名前

Page 25: 基礎構文班 17回目 クラスとメソッド

書いてみて S1_Sub

• メソッド 1 つ記述

25

Page 26: 基礎構文班 17回目 クラスとメソッド

実行結果

26

Page 27: 基礎構文班 17回目 クラスとメソッド

変数をつかってみよう変数名 . フィールド ( 変数名 );

で他のクラスの変数が使える

27

Page 28: 基礎構文班 17回目 クラスとメソッド

追記 変数 Sample1_Main

28

Page 29: 基礎構文班 17回目 クラスとメソッド

追記 変数 Sample1_Sub

• 変数追加

29

Page 30: 基礎構文班 17回目 クラスとメソッド

public と private

• わかりやすくいうとアクセス権限ですpublic クラスの外からアクセス可

private クラスの中でしか扱えない

試しに P29 の変数の public を private に変更してみるとエラーが発生します

30

Page 31: 基礎構文班 17回目 クラスとメソッド

おまけ 引数• 引数を渡す方法はメソッドを呼び出すと

きに渡したい値を入れます↓

• そしてメソッドには受け取った引数にあった型の変数を用意します この変数はこのメソッド内で使用できます 先週まではstatic ついてました

今回は、他のクラスを使うので必要ないです

31

Page 32: 基礎構文班 17回目 クラスとメソッド

問題 1-1

メインのあるクラスで Person クラスを扱うp1 を宣言し①Person クラスに変数として文字列型の

nameを作成してください

32

Page 33: 基礎構文班 17回目 クラスとメソッド

問題 1-2

②Person クラスにメソッドとして名前を入力してください

と表示する show メソッドを作成してください

33

Page 34: 基礎構文班 17回目 クラスとメソッド

問題 1-3

③Person クラスにキーボードから入力した名前を Person クラスの変数 name に代入する setName メソッドを作ってください

34

Page 35: 基礎構文班 17回目 クラスとメソッド

問題 1-4

④Person クラスの変数 name を取得するgetName メソッドを作ってください

35

Page 36: 基礎構文班 17回目 クラスとメソッド

問題 1-5 終

⑤ 最後に main メソッドがあるクラスからsetName() と getName() を使って自分の名前を表示するプログラムを記述してください

36

Page 37: 基礎構文班 17回目 クラスとメソッド

こんな感じのことを 1 年後期にやらされると思います

37

Page 38: 基礎構文班 17回目 クラスとメソッド

補完機能追加方法• 設定 >Java> エディター > テンプレート

• 新規を押して名前とコードを編集• Java ステートメント

38

Page 39: 基礎構文班 17回目 クラスとメソッド

真・問題• オリジナルなクラスとメソッドを作ってみ

てください例 ) 人の情報を扱うクラス 図形の面積を扱うクラス  正直なんでもいいです!!  • それを main メソッドのあるクラスから呼び

出して実行できればおkです いろいろ試してみてください

39