Java入門研究ノート(7)-配列、楊輝三角形、バブルソート、選択ソート、二分探索。複雑なクラスとオブジェクトの導入、定義、構築メソッド、メソッドの継承、オーバーライド、オーバーロード、ポリモーフィズム、異種コレクション、最終キーワード

1つは、配列

1.初期化

この初期化も正しいです:

int bb[]=new int[] {
    
    1,3,2};

2.ヤンフイトライアングル

package PackageA;

import java.util.Scanner;

public class YangHuiTriangle {
    
    
	public static void main(String[] args)
	{
    
    
		int a[][];
		int n;
		System.out.println("输入杨辉三角的行数:");
		Scanner sc=new Scanner(System.in);
		n=sc.nextInt();
		a=new int[n][];
		for(int i=0;i<n;++i)
		{
    
    
			a[i]=new int[i+1];
			a[i][0]=a[i][i]=1;
		}
		for(int i=2;i<a.length;++i)
		{
    
    
			for(int j=1;j<i;++j)
			{
    
    
				a[i][j]=a[i-1][j]+a[i-1][j-1];
			}
		}
		System.out.println(n+"行的杨辉三角如下:");
		for(int i=0;i<n;++i)
		{
    
    
			for(int j=0;j<=i;++j)
			{
    
    
				System.out.print(a[i][j]+" ");
			}
			System.out.println("");
		}
	}
}

演算結果:

ここに画像の説明を挿入

3.バブルソート

package PackageA;

import java.util.Scanner;

public class BubbleSort {
    
    
	public static void main(String[] args)
	{
    
    
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int a[]=new int[n];
		for(int i=0;i<n;++i)
		{
    
    
			a[i]=sc.nextInt();
		}
		for(int i=0;i<n-1;++i)
		{
    
    
			for(int j=1;j<n-i;++j)
			{
    
    
				if(a[j]<a[j-1])
				{
    
    
					a[j]^=a[j-1];
					a[j-1]^=a[j];
					a[j]^=a[j-1];
				}
			}
		}
		for(int i=0;i<n;++i)
		{
    
    
			System.out.print(a[i]+" ");
		}
		System.out.println("");
		sc.close();
	}
}

運転結果

ここに画像の説明を挿入

4.並べ替えを選択します

package PackageA;

import java.util.Scanner;

public class SimpleSort {
    
    
	public static void main(String[] args)
	{
    
    
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int a[]=new int[n];
		for(int i=0;i<n;++i)
		{
    
    
			a[i]=sc.nextInt();
		}
		for(int i=0;i<n;++i)
		{
    
    
			int k=0;
			for(int j=1;j<n-i;++j)
			{
    
    
				if(a[j]>a[k])
				{
    
    
					k=j;
				}
			}
			if(k!=n-1-i)
			{
    
    
				a[k]^=a[n-1-i];
				a[n-1-i]^=a[k];
				a[k]^=a[n-1-i];
			}
		}
		for(int i=0;i<n;++i)
		{
    
    
			System.out.print(a[i]+" ");
		}
		System.out.println("");
		sc.close();
	}
}

運転結果

ここに画像の説明を挿入

5.二分探索

package PackageA;

import java.util.Arrays;
import java.util.Scanner;
import java.util.Random;

public class BinaryQuery {
    
    
	public static int binaryQuery(int r[],int value)
	{
    
    
		int n=r.length;
		int left=0,right=n-1;
		int mid=(int)(left+right)/2;
		while(left<=right)
		{
    
    
			if(r[mid]==value)
			{
    
    
				return mid;
			}
			else if(r[mid]<value)
			{
    
    
				left=mid+1;
			}
			else
			{
    
    
				right=mid-1;
			}
			mid=(int)(left+right)/2;
		}
		return -1;
	}
	
	public static void print(int []r)
	{
    
    
		System.out.println("数据如下:");
		for(int a:r)
		{
    
    
			System.out.print(a+" ");
		}
		System.out.println("");
	}
	// 主函数
	public static void main(String[] args)
	{
    
    
		Scanner sc=new Scanner(System.in);
		
		int r[]= new int[20];
		Random random=new Random();
		for(int i=0;i<r.length;++i)
		{
    
    
			r[i]=random.nextInt(100);
		}
		Arrays.parallelSort(r);
		print(r);
		System.out.println("输入要查找的数据:");
		int value=sc.nextInt(),result;
		result=binaryQuery(r,value);
		if(result>0)
		{
    
    
			System.out.println(r[result]+"下标为"+result);
		}
		else
		{
    
    
			System.out.println("没有找到"+value);
		}
		
	}
}

運転結果

ここに画像の説明を挿入
ここに画像の説明を挿入

2.複雑なクラスとオブジェクトの概要

1.定義と工法

Javaでは、Objectクラスは、デフォルトですべてのクラスの親クラスとして扱われます。

親クラスの構築メソッドはsuperを介して呼び出すことができ、親クラスのデフォルトの構築メソッドはデフォルトで呼び出されます。

2.メソッドの継承、カバレッジ、オーバーロード

(1)メソッドカバレッジ:サブクラスのメソッド名、戻り値の型、およびパラメーターリストは、親クラスと一致している必要があります

注意:

  1. サブクラスメソッドは、親メソッドのアクセス権を狭めることはできません
  2. サブクラスメソッドは、親メソッドより多くの例外をスローできません
  3. 親クラスの静的メソッドは、非静的メソッドとしてサブクラスによってオーバーライドできません。
  4. 親クラスの静的メソッドは、サブクラスの静的メソッドによってオーバーライド(非表示)できます。
  5. Java仮想マシンの静的メソッドを独自のクラスにバインドし、インスタンスメソッドを独自のインスタンスにバインドする
  6. 親クラスの非静的メソッドは、静的メソッドとしてサブクラスによってオーバーライドできません。
  7. 親クラスのプライベートメソッドをサブクラスでオーバーライドすることはできません
  8. 親クラスの抽象メソッドは、2つの方法(つまり、実現とカバレッジ)でサブクラスによってカバーできます。
  9. 親クラスの非抽象メソッドは、抽象メソッドとしてオーバーライドできます

(2)メソッドのオーバーロード:同じメソッド名が必要です

注意:

  1. メソッドパラメータのタイプ、数、および順序の少なくとも1つが異なります
  2. メソッドの戻り値のタイプは同じでも異なっていてもかまいません
  3. メソッド修飾子は異なる場合があります

(3)ポリモーフィズム

親クラスのメソッドが子クラスに継承されていない場合は、メソッドの前にfinalキーワードを追加できます。

3.異種コレクション

コレクションでは、含まれている要素オブジェクトは異なるクラスのインスタンスに属していますが、これらの要素には共通の祖先があります。
Java言語では、共通の祖先クラスを持つオブジェクトのコレクションを作成できます。

クラス名

(クラス名)クラスオブジェクトのクラス変数インスタンス

4.最終キーワード

静的で最終的な変数は、変更できないメモリスペースに格納されていることを意味し、定義時に初期化する必要があります。

注意:

  1. オブジェクトをファイナライズするときは、オブジェクト参照を定数にします(つまり、他のオブジェクトを指すことはできません)。
  2. サブクラスは最終変更メソッドを継承できますが、サブクラスは最終変更メソッドをオーバーライドできません。

おすすめ

転載: blog.csdn.net/qq_41563270/article/details/108830022