2014 java n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
2014 年 夏 合宿 Java 入門講座 PowerPoint Presentation
Download Presentation
2014 年 夏 合宿 Java 入門講座

Loading in 2 Seconds...

play fullscreen
1 / 49

2014 年 夏 合宿 Java 入門講座 - PowerPoint PPT Presentation


  • 109 Views
  • Uploaded on

2014 年 夏 合宿 Java 入門講座. AL12011  池田貴明. Eclipse の使い方. ウィンドウ (W) →設定 (P) で設定ウィンドウを出して、 Java →エディター→コンテンツアシストにある「 Java の自動有効トリガー」を 「 ._ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 」に設定し、自動有効化遅延を「 5 0 」にする。. Eclipse の補完 機能. Eclipse の補完 機能.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '2014 年 夏 合宿 Java 入門講座' - marijke-nika


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
2014 java

2014年夏合宿Java入門講座

AL12011 池田貴明

eclipse1

ウィンドウ(W)→設定(P)で設定ウィンドウを出して、Java→エディター→コンテンツアシストにある「Javaの自動有効トリガー」をウィンドウ(W)→設定(P)で設定ウィンドウを出して、Java→エディター→コンテンツアシストにある「Javaの自動有効トリガー」を

「._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ」に設定し、自動有効化遅延を「50」にする。

Eclipseの補完機能
slide5

「ファイル」→「新規 (N)」→「Javaプロジェクト 」 でプロジェクト名に適当な名前を入力して完了ボタンを押します。(例:2013Java講座)

  • 「ファイル」→「新規 (N)」→「クラス」で パッケージ名は空、クラス名には名前を入力して完了ボタンを押します。クラス名は大文字のほうが良いです。(例:Hello)
クラスの作成
hello world

クラスを作成した時に

public class Hello {

}

となっているはずなので、public class~のかっこの中に

public static void main(String[] args) {

System.out.println("Hello, world!");

}

の3行を追加します。

Hello, world!
slide7

public static void main(String[] args) {

}

→「main」

System.out.println(“Hello, world!”);

→「sysout」or「sys」で候補を選択

補完機能を使う
slide8

Ctrl+F11を押すか上のアイコンが並んでるところにある緑の‣ボタンを押します。Ctrl+F11を押すか上のアイコンが並んでるところにある緑の‣ボタンを押します。

  • 下のコンソールにHello, world!と表示されればOKです。
プログラムの実行
slide10

クラスって??

→オブジェクトが持つ特徴や機能をまとめた設計書のようなもの。例えば車だと、ここが何センチで、色が何である、とかの「特徴」、アクセルを踏むと加速する、ブレーキを踏むと減速する、とかの「機能」、をまとめたもの。

  • オブジェクトって??

→クラスをもとに作成した実体。実体なのでオブジェクトを生成したクラス内で、実際にメソッドやフィールドの実行、参照ができる。

クラスとオブジェクト
slide11

クラスは次の3つの部品から成り立っています。クラスは次の3つの部品から成り立っています。

  • フィールド
  • メソッド
  • コンストラクタ
クラス
slide12

オブジェクトの特徴を表したもの

  • C言語でいう変数です。
  • 実際の書き方は次のスライドのようにします。
フィールド
slide13

public class SayHello {

int i = 0;

String s = "Hello!";

SayHello() {

System.out.println(i + s);

}

void Meet(String name) {

System.out.println(name + ", nice to meet you!");

}

}

フィールド

フィールド
slide14

クラスは次の3つの部品から成り立っています。クラスは次の3つの部品から成り立っています。

  • フィールド
  • メソッド
  • コンストラクタ
クラス
slide15

オブジェクトの機能を表したもの

  • C言語でいう関数です。
  • 実際の書き方は次のスライドのようにします。
メソッド
slide16

public class SayHello {

int i = 0;

String s = "Hello!";

SayHello() {

System.out.println(i + s);

}

void Meet(String name) {

System.out.println(name + ", nice to meet you!");

}

}

メソッド

メソッド
slide17

クラスは次の3つの部品から成り立っています。クラスは次の3つの部品から成り立っています。

  • フィールド
  • メソッド
  • コンストラクタ
クラス
slide18

クラスに従ってオブジェクトを実体化させる(実際に作る)ことをインスタンス化と呼びます。クラスに従ってオブジェクトを実体化させる(実際に作る)ことをインスタンス化と呼びます。

  • インスタンス化がおこなわれると、呼ばれたクラスの特別なメソッド(関数)であるコンストラクタというものが実行されます。この関数には初期化処理を書くことが多いです。
コンストラクタ
slide19

public class SayHello {

int i = 0;

String s = "Hello!";

SayHello() {

System.out.println(i + s);

}

void Meet(String name) {

System.out.println(name + ", nice to meet you!");

}

}

コンストラクタ

コンストラクタ
slide20

Javaにはフィールドやメソッド、クラスの先頭につける修飾子というものがあります。Javaにはフィールドやメソッド、クラスの先頭につける修飾子というものがあります。

  • アクセス修飾子(public, privateなど)

→指定したものをどこから参照できるかを示す

(publicはすべて、privateは自分のクラス内だけ)。何も書かないと同パッケージ内からだけ。

  • スタティック修飾子(static)

→指定したものをクラスに付随するものとする

  • ファイナル修飾子(final)

→指定したものが変更されないようにする

修飾子
slide21

インスタンス化したオブジェクトのフィールド、メソッドは「.(ドット)」を使うことで参照できます。(例:engine.size、engine.start())インスタンス化したオブジェクトのフィールド、メソッドは「.(ドット)」を使うことで参照できます。(例:engine.size、engine.start())

  • 基本的にインスタンス化していないオブジェクトのフィールド、メソッドにはアクセス(参照)ができません
  • ただし、static修飾子を用いた場合はアクセスができます。
注意点
slide23

最初のプログラムを次のように書き換えましょう最初のプログラムを次のように書き換えましょう

public class Hello {

public static void main(String[] args) {

Human aru= new Human("アル");

System.out.println(aru.introduction());

aru.age= 14;

System.out.println(aru.age);

}

}

オブジェクトを作る
slide24

Humanに赤の波線(エラー)が出るはずなので、波線に合わせてマウスをポインタし、Humanクラスを作成ボタンを押します。Humanに赤の波線(エラー)が出るはずなので、波線に合わせてマウスをポインタし、Humanクラスを作成ボタンを押します。

  • OKを押したら

public class Human {

}

というHumanクラス(Human.java)が出来ているはずなので、Humanクラスの中に次の3行を追加します。

オブジェクトを作る
slide25

public class Human {

String name; //フィールド

int age;

Human(String name) { //コンストラクタ

this.name = name;

}

String introduction() { //メソッド

return this.name + "です!よろしく!";

}

}

オブジェクトを作る

自分のクラスのこと(Human)

slide26

実行結果:

アルです!よろしく!

14

クラスとオブジェクト
slide27

mainメソッドの最初の行

Human aru= new Human("アル");

でHumanクラス型のaruという名前のオブジェクトを作成していて、次の行の

System.out.println(aru.introduction());

ではaruオブジェクトのintroductionメソッドを参照しています。

  • 次の2行

aru.age= 14;

System.out.println(aru.age);

では、最初にaruのフィールド変数ageに14を代入してから次にその値を参照しています。

クラスとオブジェクト
slide30

お絵かきソフトを作るのに必要なもの

  • JFrame→ ウィンドウ関連
  • paintメソッド → グラフィック関連
  • MouseListener, MouseMotionListener

→マウス関連

必要なもの
jframe

JFrameはフレームウィンドウを表示するためのクラスです。JFrameはフレームウィンドウを表示するためのクラスです。

  • 使うためにはjavax.swing.JFrameをimport(C言語でいうinclude)しなければなりません。
  • ウィンドウを簡単に扱えるようにするメソッドなどがたくさん含まれています。
JFrameとは
jframe1

Helloクラスに次のように書き換えます。

public static void main(String[] args) {

// オブジェクトを作るだけ

new MyFrame("お絵かきソフト");

}

JFrameを使う
jframe2

新しくMyFrameクラスを作成し、次の行を追加します(MyFrame.java)。新しくMyFrameクラスを作成し、次の行を追加します(MyFrame.java)。

import java.awt.Color;

import javax.swing.JFrame;

public class MyFrameextendsJFrame {

public MyFrame(String name) {

//タイトル設定

setTitle(name);

//×を押したときにプログラムを終了する

setDefaultCloseOperation(EXIT_ON_CLOSE);

//背景色

setBackground(new Color(255, 255, 255));

//ウィンドウサイズ

setSize(400, 300);

//ウィンドウを見えるようにする

setVisible(true);

}

}

下のJFrameとColorで補完機能を使うと自動的に追加される

JFrameを使う
slide35

画面左上に次のようなウィンドウが表示されると思います。×を押せば閉じます。画面左上に次のようなウィンドウが表示されると思います。×を押せば閉じます。

実行結果
slide36

さっきのextendsってなんぞ?

→クラスの継承といいます。「クラス名 extends 親クラス名」と書くことで、クラスが親クラスのフィールドやメソッドをそのまま引き継ぐことができます。

さっきはJFrameクラスというウィンドウに関する機能をまとめたクラスを継承して、ウィンドウ操作に関する属性、メソッドを引き継ぎました。

クラスの継承
paint

java.awt.Window.paint(Graphics g)のこと。ウィンドウの描画関係の処理を行います。

  • 何ができるの?

→ウィンドウ上に長方形、円などの図形を描いたり、色を変えたり

  • どうすれば使えるの?

→JFrameを継承しているクラスでpaintメソッドをオーバーライド(機能を追記すること)すれば使えます

paintメソッドとは
paint1

新しくMyFrameクラスを作成し、次の行を追加します(MyFrame.java)。新しくMyFrameクラスを作成し、次の行を追加します(MyFrame.java)。

import java.awt.Color;

import java.awt.Graphics;

import javax.swing.JFrame;

public class MyFrameextends JFrame{

(中略)

@Override

public void paint(Graphics g) {

g.drawLine(0,0,100,100);

repaint();

}

}

下のpaintで補完機能を使うと自動的に追加される

下のpaintで補完機能を使うと自動的に追加される

paintメソッドを使う
slide40

paintメソッドではウィンドウの左上が始点なので、変な位置から線が引かれます。paintメソッドではウィンドウの左上が始点なので、変な位置から線が引かれます。

実行結果
mouselistener mousemotionlistener

MouseListener

→マウスがクリックされたことなどを監視するものです。

  • MouseMotionListener

→マウスがドラッグされたことや動かされたことを監視するものです。

  • これらの、何かの動きを監視するものをインターフェースと呼びます。
MouseListener,MouseMotionListenerとは
slide43

MouseListenerなどのインターフェースをクラスに追加することを実装するといいます。MouseListenerなどのインターフェースをクラスに追加することを実装するといいます。

  • JFrameをExtendsした時と同じように、クラス名の後に「implements MouseListener」と書けば実装できます。
  • インターフェースを実装したクラスには、そのインターフェースのメソッドをすべて書く必要があります。
インターフェースとは
slide44

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;

public class MyListener implements MouseListener,MouseMotionListener{

int x1,x2,y1,y2;

@Override

public void mouseClicked(MouseEvent e) {

}

@Override

public void mousePressed(MouseEvent e) {

x1 = x2 = e.getX();

y1 = y2 = e.getY();

}

@Override

public void mouseReleased(MouseEvent e) {

}

@Override

public void mouseEntered(MouseEvent e) {

}

@Override

public void mouseExited(MouseEvent e) {

}

@Override

public void mouseDragged(MouseEvent e) {

x1 = x2;

y1 = y2;

x2 = e.getX();

y2 = e.getY();

}

@Override

public void mouseMoved(MouseEvent e) {

}

}

長い!

インターフェースとは
slide45

Eclipseの補完機能をぜひ使いましょう

  • 「implements MouseListener,MouseMotionListener」と書き、MouseListenerの文字に赤い波線が出るので、マウスオンして「実装されていないメソッドの追加」をクリックします。MouseMotionListenerも同様にします。
インターフェースとは
slide46

新しくMyListenerクラスを作成し、以下の行を追加します。(MyListener.java)新しくMyListenerクラスを作成し、以下の行を追加します。(MyListener.java)

public class MyListenerimplements MouseListener,MouseMotionListener{

int x1,x2,y1,y2;

intclearFlag;

@Override

public void mousePressed(MouseEvent e) { //マウスが押される度に呼ばれる

x1 = x2 = e.getX(); //マウスのX座標を取得

y1 = y2 = e.getY(); //マウスのY座標を取得

}

@Override

public void mouseDragged(MouseEvent e) { //マウスがドラッグされる度に呼ばれる

x1 = x2;

y1 = y2;

x2 = e.getX();

y2 = e.getY();

}

(以下略)

インターフェースを使う
slide47

MyFrameクラスの各所に、処理を追加します(MyFrame.java)。MyFrameクラスの各所に、処理を追加します(MyFrame.java)。

  • フィールド

MyListenermyListener;

  • コンストラクタ内

myListener= new MyListener();

addMouseListener(myListener);

addMouseMotionListener(myListener);

  • paintメソッド内

g.drawLine(myListener.x1, myListener.y1, myListener.x2, myListener.y2);

インターフェースを使う
slide49

右クリックでキャンバスをクリアするようにするとか、Ctrl+sで画像を保存できるようにするとか、マウスのホイールで線の細さを変えるとかいろいろ改良してみてください右クリックでキャンバスをクリアするようにするとか、Ctrl+sで画像を保存できるようにするとか、マウスのホイールで線の細さを変えるとかいろいろ改良してみてください

  • 今回使った講義資料、ソースは以下のHPにおいてあるので復習とかに役立ててください
  • http://rmdy.mydns.jp
最後に