■パッケージ
javaでは、用途や機能によってクラスをまとめることができる。
これをパッケージ化という。その方法は。
package パッケージ名;
とソースコードの最初に書くと、そのファイルにあるクラスはすべて指定された
パッケージに所属することになる。
パッケージ化されたクラスを使うときには次のように指定する。
パッケージ名.クラス名
(例)
paというパッケージ(フォルダ)に所属するクラス
package pa;
class Ningen{
String namae;
}
このNingenクラスをpaというフォルダ作成しておく。
pa以外のフォルダからNingenクラスを利用したいときは
pa.Ningenのように指定する。
■パッケージの利用
例えば、BufferedReaderクラスを利用するには
import java.io.*;
と書かなくてはいけない。これはBufferedReaderクラスが
java.ioパッケージの中で定義されているからである。
もしimport文を書かずにBufferedReaderクラスを利用するのであれは
java.io.BufferedReader reader = new java.io.BufferedReader …
のように書かなければいけない。
■クラス修飾子
1)public:外部のすべてのパッケージから参照することのできる
クラス
package pa;
public class Sample1{
…
}
paパッケージの外からもSample1クラスは利用できる。
しかし
package pa;
class Sample2.java{
…
}
paパッケージの外からはSample2クラスを利用したりすると
コンパイルエラーとなる。つまりpaパッケージの中の
クラスからしか利用できない。
2)abstract(=抽象的な):抽象メソッドを持つクラス
abstract class Sample3{
abstract class Sample3{//抽象クラス
//抽象メソッド
//処理を書かすに
//名前だけ定義しているメソッド
abstract void display();
absrtract vaid methoed1();
3)final:継承(= extended)できないクラス
クラスの継承とは、
//スーパークラス
piblic classA{
int i
}
//サブクラス
public class B extends A{
int j
}
上の場合クラスBはクラスAを継承しており
何も書かなくてもクラスAの機能を受け継いでいる。
クラスAは「Bのスーパークラス(親クラス)」
クラスBは「Aのサブクラス(子クラス)」という。
クラス修飾子にfinalを付けるとサブクラスを作れなくなる。
public final classA{
int i
}
public classB extends A{ //←コンパイルエラーになる
...
}
4)なし:パッケージの外から利用できない。
■オブジェクトの作成
1このような図をjavaでプログラミングすると
public class Ningen{
String name;
int age;
//コンストラクタ
public Ningen(String s,int i){
name=s; //コンストラクタに引数sを代入
age=i; //コンストラクタに引数iを代入
}
}
public class Geinin{
public static void main(String args[]){
//コンストラクタ引数を"小島よしお",25で初期化しkojimaオブジェクトを生成
Ningen kojima = new Ningen ("小島よしお",24);
//コンストラクタ引数を"柳原可奈子",21で初期化しyanagiharaオブジェクトを生成
Ningen yamagihara =new Ningen("柳原可奈子",21);
…
}
}
以上より,オブジェクトの生成は
クラス名 オブジェクト名 = new コンストラクタ名();
のように書く
javaでは、用途や機能によってクラスをまとめることができる。
これをパッケージ化という。その方法は。
package パッケージ名;
とソースコードの最初に書くと、そのファイルにあるクラスはすべて指定された
パッケージに所属することになる。
パッケージ化されたクラスを使うときには次のように指定する。
パッケージ名.クラス名
(例)
paというパッケージ(フォルダ)に所属するクラス
package pa;
class Ningen{
String namae;
}
このNingenクラスをpaというフォルダ作成しておく。
pa以外のフォルダからNingenクラスを利用したいときは
pa.Ningenのように指定する。
■パッケージの利用
例えば、BufferedReaderクラスを利用するには
import java.io.*;
と書かなくてはいけない。これはBufferedReaderクラスが
java.ioパッケージの中で定義されているからである。
もしimport文を書かずにBufferedReaderクラスを利用するのであれは
java.io.BufferedReader reader = new java.io.BufferedReader …
のように書かなければいけない。
■クラス修飾子
1)public:外部のすべてのパッケージから参照することのできる
クラス
package pa;
public class Sample1{
…
}
paパッケージの外からもSample1クラスは利用できる。
しかし
package pa;
class Sample2.java{
…
}
paパッケージの外からはSample2クラスを利用したりすると
コンパイルエラーとなる。つまりpaパッケージの中の
クラスからしか利用できない。
2)abstract(=抽象的な):抽象メソッドを持つクラス
abstract class Sample3{
abstract class Sample3{//抽象クラス
//抽象メソッド
//処理を書かすに
//名前だけ定義しているメソッド
abstract void display();
absrtract vaid methoed1();
3)final:継承(= extended)できないクラス
クラスの継承とは、
//スーパークラス
piblic classA{
int i
}
//サブクラス
public class B extends A{
int j
}
上の場合クラスBはクラスAを継承しており
何も書かなくてもクラスAの機能を受け継いでいる。
クラスAは「Bのスーパークラス(親クラス)」
クラスBは「Aのサブクラス(子クラス)」という。
クラス修飾子にfinalを付けるとサブクラスを作れなくなる。
public final classA{
int i
}
public classB extends A{ //←コンパイルエラーになる
...
}
4)なし:パッケージの外から利用できない。
■オブジェクトの作成
1このような図をjavaでプログラミングすると
public class Ningen{
String name;
int age;
//コンストラクタ
public Ningen(String s,int i){
name=s; //コンストラクタに引数sを代入
age=i; //コンストラクタに引数iを代入
}
}
public class Geinin{
public static void main(String args[]){
//コンストラクタ引数を"小島よしお",25で初期化しkojimaオブジェクトを生成
Ningen kojima = new Ningen ("小島よしお",24);
//コンストラクタ引数を"柳原可奈子",21で初期化しyanagiharaオブジェクトを生成
Ningen yamagihara =new Ningen("柳原可奈子",21);
…
}
}
以上より,オブジェクトの生成は
クラス名 オブジェクト名 = new コンストラクタ名();
のように書く