• 検索結果がありません。

Javaプログラマー早期育成ドリル ~コードリーディング編~ 解答

N/A
N/A
Protected

Academic year: 2021

シェア "Javaプログラマー早期育成ドリル ~コードリーディング編~ 解答"

Copied!
25
0
0

読み込み中.... (全文を見る)

全文

(1)

Javaプログラマー早期育成ドリル

コードリーディング編

解答

本資料は、「UFN25W:Javaプログラマー早期育成ドリル コードリーディング編」を ご購入頂いた方にのみ提供される資料です。資料内容の転載はご遠慮ください。 本解答は「UFN25W:Javaプログラマー早期育成ドリル コードリーディング編」の 初版および2版に対応しています。

2版 2017年1月

(2)

 このドリルの解答では、すべての構文の紹介はしていません。間違えやすい部分に関しては 解説(コラム)として紹介しています。 • コラム1 基本データ型(プリミティブ型)と参照型 P4 • コラム2 基本データ型の型変換 P7 • コラム3 条件分岐と論理演算子 P10 • コラム4 さまざまな繰り返し処理 P12 • コラム5 オブジェクト指向の用語まとめ 1 P16 • コラム6 クラスの継承 ~スーパークラスとサブクラス、アクセス修飾子 P20 • コラム7 オブジェクト指向の用語まとめ 2 P22 • コラム8 クラスの拡張 ~抽象クラスとインタフェース P23 • コラム9 例外処理の基本 P25

コラム一覧

(3)

クラスとmain()メソッド

1

・ コードには [ 1 ・ 2 ・ 3 ] つのクラス定義が記述されています。 ・ Aクラスは [ ] 行目から [ ] 行目までです。 ・ Bクラスは [ ] 行目から [ ] 行目までです。 ・ StartUpクラスは [ ] 行目から [ ] 行目までです。 ・ main()メソッドは [ ] 行目から [ ] 行目までに記述されています。 ・ main()メソッドのあるクラスは [1 ・ 2 ・ 3 ] つです。 1 3 5 7 9 13 10 12

変数とデータ型

2

String name = "ABCDEFG";

String name = "123456";

int number = -123456;

boolean flag = false;

boolean flag = true;

© 富士通ラーニングメディア

(4)

データ型には基本データ型(プリミティブ型)と参照型があります。参照型の1つとして、 文字列を扱うString型があります。 基本データ型と参照型との大きな違いは、基本データ型では変数自体が値を格納してい るのに対し、参照型では参照(アドレス値)を格納している点です。 以下のコードの場合、変数str1にはアドレス値(分かりやすいように100としています) が入り、アドレスが示す領域に実際の値である"Welcome To "が入っています。 このため、データの代入を行った場合、基本データ型は同じ値を格納した別々の領域と なるのに対し、参照型では変数は別々でも参照している値は同じである場合があります。 ■基本データ型 ■参照型

コラム1

基本データ型(プリミティブ型)と参照型

str1 100 "Welcome To " 100 String str1 = "Welcome To "; 1. int number1 = 100; 2. int number2 = number1;

number1 number2 100 100 変数に値が直接 代入される 1. String name1 = "鈴木; 2. String name2 = name1;

name1 name2 変数に参照(アドレ ス値)が代入される “鈴木" © 富士通ラーニングメディア 4

(5)

配列の定義

3

コマンドライン引数の利用

4

 コマンド1  コマンド2  コマンド3 処理 は 回実行されます。 処理 は 回実行されます。 処理 は 回実行されます。  コマンド4 処理 は 回実行されます。 2 3 1  コード1  コード2

A

B

© 富士通ラーニングメディア 5

(6)

演算子

5

num int num = 2 + 3 * 4;

int num = 3 * 6; num

double num = 2 * 3.14; num

double num = 10 / 4; num

double num = 10.0 / 4.0; num

double num = 10.0 / 4 ; num

int num = 10 % 4; num

int value = 100;

boolean flag = value != 100 ;

flag int value = 1;

boolean flag = value == 1 ;

flag

int value = 3;

boolean flag = value > 3;

flag

int value = 3;

boolean flag = value >= 3;

flag 14 18 6.28 2.0 2.5 2.5 2 true false false true © 富士通ラーニングメディア 6

(7)

基本データ型を使用した式の演算や代入を行う場合には、データ型の変換が必要になる ことがあります。このような場合に行われる変換を型変換(キャスト)といいます。 型変換には暗黙的型変換と明示的型変換があります。 ■暗黙的型変換 代入において、左辺の型のサイズが右辺の型より大きい場合、左辺の型に自動的に型変換 されます。以下のコードでは、右辺の計算結果はint型です。左辺のdouble型はint型より 大きいため、暗黙的な型変換が行われます。 また、式の中に複数のデータ型が混在する場合、その中で最もサイズの大きな型に型変 換されます。この型変換も自動的に行われます。以下のコードでは、左辺にdouble型と int型が混在しているため、double型に暗黙的に変換されます。 ■明示的型変換 左辺の型のサイズが右辺の型より小さい場合、自動的には型変換が行われず、コンパイル エラーが発生します。開発者自身で意識的に変換する必要があります。 型変換の動きを理解していないと、演算の結果を誤って解読してしまう場合があります。 注意しましょう。

コラム2

基本データ型の型変換

double num = 10 / 4; double num = 10 .0 / 4;

int num =(int) (10 .0 / 4);

(変換する型)変換する値 書式

© 富士通ラーニングメディア

(8)

if文による条件分岐と論理演算子 1

6

処理2が実行される条件式 処理1が実行される条件式 score <= 100 || score < 0 score % 10 > 0

if文による条件分岐と論理演算子 2

7

 変数resultの値  値1と値2の組み合わせ 合格 補欠合格 不合格 値1が100、値2が40 値1が90、値2が70 値1が80、値2が80 値1が80、値2が70 値1が80、値2が50 値1が70、値2が70 © 富士通ラーニングメディア 8

(9)

switch文による条件分岐

8

 変数numberの値  結果 0 2 2.5 3 処理1が実行される 処理2が実行される 処理3が実行される コンパイルエラーになり実行できない 何も起こらない(コンパイルエラーも発生しない) © 富士通ラーニングメディア 9

(10)

条件分岐を行う構文には、以下の2つがあります。  if文  switch文 if文は「if」の後の丸括弧の中に、boolean型で評価できる条件式を記述します。条件式が真 (true)か偽(false)かによって、処理の流れが変わります。 switch文は「switch」の後の丸括弧に指定する式の値が、整数型(char型、byte型、short型、 int型)、String型、列挙型である必要があります。これ以外のデータ型(浮動小数点型など)を式 の値にした場合はエラーが発生します。 switch文の各caseラベル内の処理にはbreakまたはreturn文のいずれかを記述します。ただし、 caseラベルだけを連続で記述する場合は、breakを書く必要はありません。 また、if文のようにboolean型で評価する条件式を記述する場合、論理演算子を使うことがありま す。「かつ」ないしは「または」の動きをする論理演算子を以下に示します。 通常、&&演算子の評価結果と&演算子による評価結果は同じです。しかし、&&および||演算子は、 左辺の評価結果によっては右辺を評価しません。このような挙動をショートサーキット評価(また は短絡評価)と呼びます。

コラム3

条件分岐と論理演算子

1. switch(number){ 2. case 0: 3. case 1: 4. 5. break; 6. case 2: 7. 8. break; 9. default: 10. 11. break; 12. } numberが0または1の場合 同じ処理をするため、 「case 0:」に対応する breakを記述しません 演算子 働き 機能 & かつ 2つの式がともに真の場合はtrue、それ以外はfalseを返す。 | または 2つの式が1つ以上真の場合はtrue、それ以外はfalseを返す。 && かつ 式を左から評価し、偽に当たるとfalseを返し、残りを評価しない。 || または 式を左から評価し、真に当たるとtrueを返し、残りを評価しない。 © 富士通ラーニングメディア 10

(11)

while文による繰り返し

9

 コード1 処理 は 回実行されます。  コード2 処理 は 回実行されます。  コード3 処理 は 回実行されます。 4 5

for文による繰り返し

10

 コード1 処理 は [ 4 ・ 5 ・ 6 ] 回実行されます。  コード2 処理 は [ 4 ・ 5 ・ 6 ] 回実行されます。  コード3 処理 は [ 5 ・ 9 ・ 10 ] 回実行されます。

拡張for文による繰り返し

11

 コード1 Hello, Java World  コード2 310  コード3 ○×○× © 富士通ラーニングメディア 11

(12)

繰り返しを行う構文として、以下の4つがあります。  while文  do - while文(ドリルでは扱いません)  for文  拡張for文 while文は繰り返しのたびに条件が評価される前判定ループ、do - while文は繰り返しの たびに処理の最後で条件が評価される後判定ループです。前判定ループは、最初から条件 を満たさない場合、1度もループ内の処理を行うことなく後続の処理を行います。後判定 ループは、最初から条件を満たさない場合でも、1度はループ内の処理を行った上で、後 続の処理を行います。 また、拡張for文は配列などの値の集合からなるデータ群(コレクション)の先頭から末 尾までの各要素に、順番に同様の処理を繰り返すときに使用する構文です。拡張for文の構 文を以下に示します。このとき、反復変数のデータ型はコレクションの要素と同じものを 使用します。 また、以下の構文を使用することで、繰り返し処理を制御できます。  break文 繰り返しを終了して、次の処理へ移動  continue文 繰り返し処理のブロックの最後まで残りの処理をスキップする

コラム4

さまざまな繰り返し処理

for(データ型 反復変数 : コレクションの参照変数){ [各要素に対して実行する処理;] } 書式 © 富士通ラーニングメディア 12

(13)

メンバ変数とメソッド

12

• Employeeクラスには [ ] 個のメンバ変数が定義されています。 • A部分には [ メンバ変数 ・ メソッド ] の定義が記述されています。 • B部分には [ メンバ変数 ・ メソッド ] の定義が記述されています。 2

メソッドの定義 1

13

 コード1  コード3  コード4  コード2 ・戻り値を [ 返す ・ 返さない ] メソッドです。 ・メソッドの名前は [ void ・ test1 ] です。 ・引数が [ ない ・ ある ] メソッドです。 ・戻り値を [ 返す ・ 返さない ] メソッドです。 ・引数が [ ない ・ ある ] メソッドです。 ・戻り値のデータ型は [ String ・ int ] です。 ・引数の変数名は [ msg ・ no ] です。 ・引数の数は [ ] 個です。 ・戻り値の数は [ ] 個です。 2 1

メソッドの定義 2

14

• order()メソッドには [ ] 型の引数が定義されています。 引数名は [ ]です。 • order()メソッドを実行することで、メンバ変数 [ ] に 実行時の日時が設定されます。 • また、order()メソッドの引数名 [ ] の値がtrueの場合は、 メンバ変数[ ] に [ ] の文字列が 設定されます。 order()メソッドの引数名 [ ] の値がfalseの場合は、 メンバ変数[ ] に [ ] の文字列が 設定されます。 • order()メソッドは戻り値を [ 返します ・ 返しません ] 。 boolean isPremiumUser orderDate isPremiumUser deliveryMode 即日配送 deliveryMode isPremiumUser 翌日配送 © 富士通ラーニングメディア 13

(14)

メソッドのオーバーロード

15

 コード1  コード2

A

,

B

,

C

B

,

C

コンストラクタの定義 1

16

B

,

D

コンストラクタの定義 2

17

 コード1  コード2 このクラスのコンストラクタは 個です。 2 このクラスのコンストラクタは 個です。 1

インスタンス生成

18

emp1 name = [ ] number = [ ] emp2 name = [ ] number = [ ] emp3 name = [ ] number = [ ] "Unknown" "1234" "Sato" "9876" "Yamada" "3210" © 富士通ラーニングメディア 14

(15)

メソッドの呼び出し 1

19

• A部分にはメソッドの[ 定義・呼び出し ]が記述されています。 • B部分にはメソッドの[ 定義・呼び出し ]が記述されています。 • C部分にはメソッドの[ 定義・呼び出し ]が記述されています。 • D部分にはメソッドの[ 定義・呼び出し ]が記述されています。 • E部分にはメソッドの[ 定義・呼び出し ]が記述されています。 • F部分にはメソッドの[ 定義・呼び出し ]が記述されています。

メソッドの呼び出し 2

20

 コード

1. public class Sample{ 2.

3. public int add(int x, int y){ 4. return x + y;

5. } 6.

7. public double div(int x, int y){ 8. return (double)x / y; 9. }

10.

11. public void test(int x){ 12. }

13.

14. public void test(String x){ 15. }

16.

17. public void test(int x, String y){ 18. }

19.

20. public void test(String x, int y){ 21. }

22. 23. }

 実行コード

s.test(100); e int answer = s.add(5, 2 ); b

double result = s.div(5, 2 ); d

s.test("123", 100); c

s.test("123"); f s.test(100, "123"); a

© 富士通ラーニングメディア

(16)

ここまでの問題で登場するオブジェクト指向の用語を以下にまとめます。  クラス オブジェクトのひな形、オブジェクトを作る際の設計図に相当する クラス内部にはデータと処理を定義できる  インスタンス クラス(設計図)をもとに作られた個々の実体のこと オブジェクトとほぼ同じ意味を持つ  メンバ変数 オブジェクトが持つデータのこと  メソッド オブジェクトが持つ処理のこと ・ 引数 メソッドの実行のために外部から与えるデータのこと ・ 戻り値 メソッドの結果として外部に返す値のこと ・ オーバーロード 同名メソッドを多重定義すること  コンストラクタ インスタンス生成時に動作する特殊なメソッド インスタンス生成時にメンバ変数の初期化などを 行う場合に作成する

コラム5

オブジェクト指向の用語まとめ 1

ネコクラス 名前 色 ネコオブジェクト トラちゃん チャトラ ネコオブジェクト コテツくん グレートラ 具体的な値 を持った 個々の実体 生成 © 富士通ラーニングメディア 16

(17)

サブクラスの定義 1

21

• [ A ・ B ] クラスは [ A ・ B ] クラスを継承した [ サブ ・ スーパー ] クラスです。 • Cクラスのスーパークラスは [ ありません。 ・ Dクラスです。 ] Cクラスのサブクラスは [ ありません。 ・ Bクラスです。 ・ Cクラスです。 ] • Dクラスのスーパークラスは [ ありません。 ・ Bクラスです。 ・ Cクラスです。 ] Dクラスのサブクラスは [ ありません。 ・ Bクラスです。 ・ Cクラスです。 ] • Eクラスのスーパークラスは [ ありません。 ・ Bクラスです。 ] Eクラスのサブクラスは [ ありません。 ・ Cクラスです。 ・ Dクラスです。 ]

サブクラスの定義 2

22

• [ ] クラスは [ ] クラスのサブクラスです。 • サブクラスにはスーパークラスから継承したメンバ変数が [ ] 個、 メソッドが [ ] 個あります。 • サブクラスで独自に定義したメンバ変数は [ ] 個あります。 Book Item 2 1 1

サブクラスのインスタンス

23

メンバ変数name メンバ変数price メンバ変数author showInfo()メソッド showDetail()メソッド setName()メソッド setPrice()メソッド setAuthor()メソッド Itemオブジェクト Bookオブジェクト © 富士通ラーニングメディア 17

(18)

オーバーライドの定義

24

• doSomething1()メソッドは、スーパークラスのメソッドをサブクラス側で [ オーバーロード ・ オーバーライド ] しています。これにより、 doSomething1() メソッドが再定義されます。 • doSomething2()メソッドは、スーパークラスのメソッドをサブクラス側で [ オーバーロード ・ オーバーライド ] しています。これにより、 doSomething2() メソッドが多重定義されます。

サブクラスの使用

25

 a行の実行により呼び出されるコンストラクタ Xクラスのコンストラクタ (引数なし) YクラスのreturnInfo()メソッド  b行の実行により呼び出されるメソッド Yクラスのコンストラクタ

superキーワードの使用 1

26

 実行コード1 商品名:null 価格:0 サイズ:M 商品名:ネコ柄Tシャツ 価格:1500 サイズ:XS  実行コード2 © 富士通ラーニングメディア 18

(19)

superキーワードの使用 2

27

i1 name = [ ] price = [ ] w1 name = [ ] price = [ ] size = [ ] w2 name = [ ] price = [ ] size = [ ] "名前なし" 0 "名前なし" 0 "Free" 3000 "L" "白Yシャツ"

アクセス修飾子

28

BaseClassクラスのdoSomething()メソッドは、SampleClassクラス内から アクセス可能である BaseClassクラスのメンバ変数baseNameは、DerivedClassクラス内から アクセス可能である BaseClassクラスのメンバ変数baseNameは、SampleClassクラス内から アクセス可能である BaseClassクラスのメンバ変数baseCountは、DerivedClassクラス内から アクセス可能である DerivedClassクラスのdoSomething()メソッドは、SampleClassクラス内から アクセス可能である DerivedClassクラスのメンバ変数derivedNameは、BaseClassクラス内から アクセス可能である SampleClassクラスのdoSomething()メソッドは、BaseClassクラス内から アクセス可能である BaseClassクラスのsetterおよびgetterは、DerivedClassクラス内から アクセス可能である

×

×

×

© 富士通ラーニングメディア 19

(20)

継承とは、既存のクラス定義を引き継いで、新たなクラスを定義することです。新しい クラスの定義時には既存のクラスとの差分のみを定義するだけで済むため、クラスの再利 用性が向上します。 再利用性の高いクラスを作るためには、クラス間の依存関係を少なくすることが重要で す。そのため、サブクラスでスーパークラスから受け継いだメンバ変数(上図における 「名前」や「色」)の初期化を行う場合は、サブクラスのコンストラクタで直接初期化処 理を行うのではなく、サブクラスのコンストラクタの中からスーパークラスのコンストラ クタを呼び出します。そうすることで、仮にスーパークラスに変更が発生しても(上図に おける「名前」を「ネコの名前」に変更するなど)、サブクラスへの影響を最小限に抑え ることができます。 また、クラスのメンバ(メンバ変数やメソッドなど)のアクセス範囲はアクセス修飾子 によって決まります。よく使用するアクセス修飾子を以下に示します。

コラム6

クラスの継承 ~スーパークラスとサブクラス、アクセス修飾子

ネコクラス 名前 色 飼いネコクラス 飼い主の名前 お気に入りのオモチャ スーパークラス サブクラス 図には見えていないが、 スーパークラスのメンバの 「名前」と「色」を 受け継いでいる 修飾子 機能 private 定義したクラスの内部からのみアクセス可能 public 定義したクラスの外部からもアクセス可能(アクセス制限なし) © 富士通ラーニングメディア 20

(21)

インタフェースの定義

29

• コードの中にはインタフェースが [ ] 個定義されています。 • インタフェース内には、メソッドの [ シグニチャ ・ 実装 ] が 含まれています。メソッドの [ シグニチャ ・ 実装 ] を記述することは できません。 2

インタフェースの実装

30

C

,

D

,

E

参照型の型変換

31

1回目の繰り返し処理における実行コードg行で呼び出されるメソッド 3回目の繰り返し処理における実行コードg行で呼び出されるメソッド A B © 富士通ラーニングメディア 21

(22)

ここまでの問題で登場するオブジェクト指向の用語を以下にまとめます。  継承 既存のクラス定義を引き継いで、新しいクラスを定義すること  クラス オブジェクトのひな形、オブジェクトを作る際の設計図に相当する クラス内部にはデータと処理を定義できる ・ スーパークラス 2つのクラスが継承関係にあるときの、継承元になるクラス ・ サブクラス 2つのクラスが継承関係にあるときの、継承先になるクラス サブクラスはスーパークラスのメンバ(メンバ変数やメソッドなど)をすべて 受け継ぐ  メソッド オブジェクトが持つ処理のこと 特殊なものとしてはコンストラクタなどがある ・ 抽象メソッド 引数や戻り値の型だけを定義した空のメソッド(シグニチャ) ・ オーバーライド スーパークラスと同じ名前、引数、戻り値の型のメソッドをサブクラスで 定義すること スーパークラスから引き継いだ同名メソッドの再定義 (用語が同名メソッドを多重定義すること(オーバーロード)と似ているが、 異なる概念)  インタフェース 引数や戻り値の型だけを定義した空のメソッド(シグニチャ)の集まり

コラム7

オブジェクト指向の用語まとめ 2

© 富士通ラーニングメディア 22

(23)

抽象クラスとインタフェースは、どちらも単体ではインスタンスの生成ができません。抽象クラス もインタフェースも同名メソッドの多様性(本質的には同じでも詳細が異なる処理を、同じ命令名を 使って実行する仕組み)を高めるための仕組みと言えます。 ここで、「再生」「停止」という処理を考えてみましょう。例えば、音楽プレーヤーの場合は、 「再生」処理によって「音が流れ」、「停止」処理によって「音が止まる」でしょう。これに対して、 動画プレーヤーの場合は、「再生」処理によって「画像と音が流れ」、「停止」処理によって「画像 と音が止まる」でしょう。本質的にはどちらも同じ「再生」と「停止」ですが、処理の詳細は異なり ます。 このように、処理の詳細は異なっていても本質的に同じ処理がある場合は、あえて同じ名前にそろ えることで、新しくクラスを開発する開発者にとっては複数の名前を命名する手間が省けます。また、 既存クラスを使用する開発者にとっては、複数の名前を覚えて使い分ける手間が省けます。 クラスに対する同名メソッドの多様性(ポリモフィズムとも言います)を実現するために抽象クラ スとインタフェースのどちらを使用するかは、しばしば難しい問題となることがあります。 抽象クラスとインタフェースの使い分けの推奨を以下に示します。  幅広い範囲の種類の異なるオブジェクトで使用できる機能を作成する場合は、インタ フェースを使用する 例えば、「音楽プレーヤー」だけでなく「カメラ」、「ゲーム機」にも「再生」と 「停止」機能を作成する場合、「音楽プレーヤー」「カメラ」「ゲーム機」などの 間で継承関係を見出すことは困難な場合があります。インタフェースは継承関係に 関係なく使用できます。  作成する機能に対して複数のバージョンが必要な場合は抽象クラスを使用する 抽象クラスの場合、抽象クラス(継承関係におけるスーパークラス)を更新するこ とにより、すべてのサブクラスに自動的に変更が反映されます。インタフェースに おいて新しいバージョンが必要な場合は、別名の新しいインタフェースを作成する 必要があります。  作成するクラスに対して共通の実装済み機能を提供する場合は、抽象クラスを使用する 抽象クラスには実装済みメソッドを含めることができますが、インタフェースでは 実装済みメソッドを含めることはできません。  小さな機能の場合は、インタフェースを、大きな機能の場合は、抽象クラスを使用する 1つのクラスに対して複数のインタフェースの実装は可能ですが、複数のクラスの継 承はできません。

コラム8

クラスの拡張 ~抽象クラスとインタフェース

© 富士通ラーニングメディア 23

(24)

例外処理 1

32

 値  結果

3

5

処理1が実行される

処理2が実行される

処理3が実行される

処理4が実行される

0

例外処理 2

33

B → A → C → D

ユーザー定義例外と例外のスロー

34

値が 50 の場合 値が 5 の場合 値が 10 の場合 "お買い上げありがとうございます" "在庫不足です" "お買い上げありがとうございます" 値が 25 の場合 "購入数が多すぎます" © 富士通ラーニングメディア 24

(25)

Javaでは、例外処理の方法として、以下の2通りがあります。 • try-catch文を使用した例外処理 • throwsキーワードを使用した例外処理 それぞれの書式は以下のとおりです。 try-catch文は、エラーが発生した場合、プログラムの強制終了を防ぎ、エラーに対処で きます。throwsキーワードを使用することにより、発生した例外オブジェクトを呼び出し 元に通知できます。throwsを使用した場合、最終的には呼び出し側でtry-catch文の記述 が必要になります。 また、例外を明示的に発生させることができます。業務ルールに反した処理を行った場 合などに例外を発生させる場合に使用できます。

コラム9

例外処理の基本

try{ [エラーが起こる可能性のある処理;] }catch(例外の型 [変数名]){ [例外処理;] }finally{ [例外の有無にかかわらず実行する処理;] } 書式 [修飾子] 戻り値の型 メソッド名(引数) throws 例外クラスの型{ [エラーが起こる可能性のある処理;] } 書式 throw 例外オブジェクト; 書式 © 富士通ラーニングメディア 25

参照

関連したドキュメント

スライド5頁では

Nintendo Switchでは引き続きハードウェア・ソフトウェアの魅力をお伝えし、これまでの販売の勢いを高い水準

当社は「世界を変える、新しい流れを。」というミッションの下、インターネットを通じて、法人・個人の垣根 を 壊 し 、 誰 もが 多様 な 専門性 を 生 かすことで 今 まで

Q-Flash Plus では、システムの電源が切れているとき(S5シャットダウン状態)に BIOS を更新する ことができます。最新の BIOS を USB

この大会は、我が国の大切な文化財である民俗芸能の保存振興と後継者育成の一助となることを目的として開催してまい

 英語の関学の伝統を継承するのが「子どもと英 語」です。初等教育における英語教育に対応でき

○池本委員 事業計画について教えていただきたいのですが、12 ページの表 4-3 を見ます と、破砕処理施設は既存施設が 1 時間当たり 60t に対して、新施設は

ぼすことになった︒ これらいわゆる新自由主義理論は︑