Javaゼミ第6回直江担当
演習問題解答例
---------------------------------------------------
問1
[継承してメソッド、変数を増やして利用するプログラム]

class Matrix{
	int matrix[][],dimension ;
	Matrix(int number){
		this.dimension=number ;
		this.matrix=new int[this.dimension][this.dimension] ;
		for(int i=0;i<this.dimension;i++){
			for(int j=0;j<this.dimension;j++){
				this.matrix[i][j]=1 ;
			}
		}
	}
	void Input_matrix(int row,int line,int number){
		this.matrix[row][line]=number ;
	}
}

class Matrix_2 extends Matrix{
	int matrix_2[][],dimension_2 ;
	Matrix_2(int number){
		super(number) ;
		this.dimension_2=number ;
		this.matrix_2=new int[this.dimension_2][this.dimension_2] ;
		for(int i=0;i<this.dimension_2;i++){
			for(int j=0;j<this.dimension_2;j++){
				this.matrix_2[i][j]=2 ;
			}
		}
	}
	void Input_matrix(int row,int line,int number,int mat_switch){
		if(1==mat_switch)this.matrix[row][line]=number ;
		if(2==mat_switch)this.matrix_2[row][line]=number ;
	}
	void sum(){
		for(int i=0;i<this.dimension_2;i++){
			for(int j=0;j<this.dimension_2;j++){
				System.out.print(this.matrix[i][j]+this.matrix_2[i][j]) ;
			}
			System.out.println() ;
		}
	}
}

public class test {
	static public void main(String args[]){
		int dimension=3 ;
		Matrix_2 ma_2=new Matrix_2(dimension) ;
		System.out.println("加算前...") ;
		System.out.println("インスタンス変数...matrix") ;
		for(int i=0;i<dimension;i++){
			for(int j=0;j<dimension;j++){
				System.out.print(ma_2.matrix[i][j]) ;
			}
			System.out.println() ;
		}
		System.out.println("インスタンス変数...matrix_2") ;
		for(int i=0;i<dimension;i++){
			for(int j=0;j<dimension;j++){
				System.out.print(ma_2.matrix_2[i][j]) ;
			}
			System.out.println() ;
		}
		System.out.println("加算後...matrix + matrix_2") ;
		ma_2.sum() ;
	}
}

[出力結果]
加算前...
インスタンス変数...matrix
111
111
111
インスタンス変数...matrix_2
222
222
222
加算後...matrix + matrix_2
333
333
333
---------------------------------------------------
問2
[abstractを使って同じメソッドを利用するプログラム]

abstract class Language{
	void country(){
	}
}

class English extends Language{
	void country(){
		System.out.println("Britain") ;
	}
}
class Chainese extends Language{
	void country(){
		System.out.println("Chaina") ;
	}
}
class French extends Language{
	void country(){
		System.out.println("France") ;
	}
}
class Japanese extends Language{
	void country(){
		System.out.println("Japan") ;
	}
}

public class test {
	static public void main(String args[]){
		Language lang ;
		lang=new English() ;
		lang.country() ;
		lang=new Chainese() ;
		lang.country() ;
		lang=new French() ;
		lang.country() ;
		lang=new Japanese() ;
		lang.country() ;
	}
}

[出力結果]
Britain
Chaina
France
Japan