【四日目】Java学習

【四日目】Java学習

1. インターフェース


クラス作成時はinterface クラス名

・定数と抽象メソッドのみを定義できるクラスのテンプレート

変数とメソッドの宣言時に自動で定数と抽象メソッドに置き換わる
変数宣言時にpublic、static、final、
メソッド宣言時にpublic、abstractは記載しなくても自動で付く

・インターフェースを実装したクラスでは全てのメソッドの処理を定義する

・インターフェースは複数実装できる
継承関係にないクラスの間で同じような処理を持たせたい場面で使用することになる

インターフェースの実装時は下記のように記載する

クラス名宣言 implements インターフェースのクラス名 {

2. パッケージ


複数のクラスをまとめる仕組み


①パッケージ化の宣言

 package パッケージ名;

 例:package pack;
public class Student {
   pack.Studentがクラス名(完全修飾名)となる。
パッケージ名と同じ名前フォルダに入れる必要がある。


②パッケージクラスの利用

 インポートしてパッケージ名を省略

 import 完全修飾名;

 例:import pack.Student;
class StuSample(
※import pack.*;でもOK


パッケージとインポートを同時に行いたいときは①パッケージ②インポート③クラスの定義の順番で行う必要がある。

コンパイル時の便利なコマンド

javac -d .*.java

3. 例外

・実行時に発生するエラーのこと

 例外が発生すると例外クラスのオブジェクトが自動生成される

システムが原因の場合:Errorクラス

プログラムが原因の場合:Exceptionクラス

→どこでも発生しうるエラーRuntimeExceptionクラス

Exceptionクラスは例外処理が必須

4. 例外処理


例外発生時に自動生成される例外オブジェクトを受け取るためにtry catchブロックを書く

構文

try{
[通常の処理]
}catch(){
[例外処理]
} finaly{
[後処理]
}




public class Divide2{
public static void main(String[] args){
try{
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
System.out.println("計算開始");
System.out.println("a / b = " + (a / b) + "あまり" + (a % b));
System.out.println("計算終了");
}catch(ArrayIndexOutOfBoundsException e){
System.out.println("2つの数値を入力してください");
System.out.println("詳細:" + e.getMessage());
e.printStackTrace();
}catch(Exception e){
System.out.println("例外が発生しました");
System.out.println("詳細:" + e.getMessage());
e.printStackTrace();
}finally{
System.out.println("プログラムを終了します");
}
}
}


throw・throws

・throw 例外オブジェクト:例外を強制的に発生させる

・throws 例外クラス:メソッドがその例外を発生すること宣言する

5. 本日の使用したサンプルコード

public interface Englishable {
String LANGUAGE = "[英語]";
void displayEng();
}

public class Student7 implements Englishable {
private String name;

public Student7(String name) {
this.name = name;
}
public void display() {
System.out.println("名前:" + name);
}
public void displayEng() {
System.out.println(Englishable.LANGUAGE);
System.out.println("Name:" + name);
}
}

public class Baseball implements Englishable {
public void display() {
System.out.println("キャッチボール");
System.out.println("シートノック");
System.out.println("バッティング");
}

public void displayEng() {
System.out.println("English LANGUAGE");
System.out.println("catch ball");
System.out.println("seat knock");
System.out.println("batting practice");
}
}

public class StuSample7 {
public static void main(String[] args) {
Student7 stu = new Student7("Mike");
stu.displayEng();

Baseball bb = new Baseball();
bb.displayEng();
}
}


package pack;

public class Student8 {
private String name;

public Student8(String name) {
this.name = name;
}
public void display() {
System.out.println("名前:" +name);
}
}


import pack.Student8;

public class StuSample8 {
public static void main(String[] args){
Student8 stu = new Student8("菅原");
stu.display();
}
}

import java.io.*;

public class WriteFile {
public static void main(String[] args){
try{
BufferedReader r = new BufferedReader(
new InputStreamReader(System.in));
PrintWriter w = new PrintWriter(
new BufferedWriter(new FileWriter("output.txt")));

String str;
wh

人気のタグ一覧