javaSE シリーズでのメソッドと配列の使用

@[TOC] javaSE シリーズでのメソッドと配列の使用

メソッド定義

メソッドとは、C言語の「関数」に相当します。

メソッドの種類
ここでのメソッドは、パラメータ付きメソッドとパラメータなしメソッドに分けられ、仮パラメータと実パラメータの 2 つの実体 (これは関数の値による呼び出し参照による呼び出しに相当します)
1. 非静的メソッド: 通常のメソッド/コンストラクト メソッド
1. 通常のメソッド:メンバメソッド/構築メソッド(特殊なメンバメソッド)
2. 静的メソッド:静的に変更された
メソッド 3. 抽象メソッド

メソッドの定義は修飾子戻り値の型メソッド名(パラメータ型仮引数)
メソッド本体コード
return;で定義されます。

注:
1. 戻り値の型: メソッドに戻り値がある場合、戻り値の型は返されるエンティティの型と一致する必要があります。戻り値がない場合は void と記述する必要があります。 2. メソッド
:小さいキャメルケース
3. パラメータリスト: メソッドにパラメータがなく、() 内に何も書かれていない場合 パラメータがある場合はパラメータの型を指定する必要があり、複数のパラメータはカンマで区切られます 4. メソッド本体
:
5. Java では、メソッドはクラス内に記述する必要があります
6. Java では、メソッドをネストして定義することはできません
7. Java では、メソッド宣言はありません
8. メソッドを定義するとき、 9.メソッドのコードは実行されません。9
. メソッドは呼び出されたときのみ実行されます。メソッドは複数回呼び出すことができます。

書き換えとオーバーロード

なぜ書き換える必要がある
のか​​ メソッドの機能が同じでもパラメータが異なる場合、これらのメソッドは書き換えられます。

過負荷:

  1. メソッド名は同じである必要があります
  2. パラメータリストは異なっている必要があります(パラメータの数、パラメータのタイプ、タイプの順序が異なる必要があります)。
  3. 戻り値の型が同じかどうかは関係ありません//メソッド名が同じだけです

ここに画像の説明を挿入
書き換え

オーバーライドとも呼ばれます。書き換えとは、親クラスの非静的、非プライベート変更、非最終変更、非構築的メソッドなどをサブクラスで実装する処理であり、
戻り値や仮パラメータは変更できませんつまり、シェルは変更されませんが、コアは書き換えられます。

【メソッド書き換えのルール】

サブクラスが親クラスのメソッドを書き換える場合、通常、親クラスのメソッドのプロトタイプと一貫性がなければなりません。戻り値の型のメソッド名 (パラメーター リスト) は
完全に一致している必要があり
、書き換えられたメソッドの戻り値の型は、異なりますが、親子関係がある必要があります
アクセス権は、親クラスでオーバーライドされたメソッドのアクセス権より低くすることはできません。例: 親クラスのメソッドがpublic によって変更された場合、サブクラスで書き換えられたメソッドを
protected
として宣言することはできません。static および private によって変更された親クラスのメソッドとコンストラクターはオーバーライドできません。

知らせ

構築メソッド内でオーバーライドされたメソッドを呼び出さないようにします:
サブクラス オブジェクトが構築されるとき、最初にスーパークラス構築メソッドが呼び出されますが、スーパークラス構築メソッドにはオーバーライドされたメソッドがあり、この時点で動的バインディングが発生するためです。サブクラスの が呼び出されますが、この時点ではサブクラス オブジェクト自体はまだ構築されておらず、構築は完了していません。

配列の基本概念

配列とは何ですか

配列: 同じ要素のコレクション。メモリ内の連続した空き領域です (これは (C 言語の構文に似ており、各領域には独自の番号があります))

配列の作成と初期化

配列型 [] 配列名 = 新しい配列型 []
// 3 つの書き方

  1. int[] arr = 新しい int[]{1,2,3,4,5,6};
  2. int[] arr = 新しい int[10];
  3. int[] arr = {1,3,4,5,6};
  4. // int[] arr; arr={1,3,4}; のようには記述できないので注意してください。
  5. int[] arr;
  6. // ここでは配列の初期化は行われず、デフォルトは基本型の対応するデフォルト値です。

配列へのアクセス方法

system.out.println(arr[0]);

配列を反復処理する

int[] arr = new arr[]{
    
    1,3,4,5,3};
//方法一
for(int i = 0; i < arr.length ;i++){
    
    
	system.out.println(arr[i]);
}

//方法二
for(数据类型 x : 数组名){
    
    
	system.out.println(x);
}
//这里不能使用下标访问,只能每个元素遍历

配列は参照型です

// 一般的な参照型は
クラス class
インターフェイス インターフェイス
配列 配列
...

参照変数とは何ですか

変数の本質は、変数の値を格納する小さなメモリ ユニットです。変数がオブジェクトを指す場合、その変数は参照と呼ばれます。変数参照はスタックに格納され、オブジェクトはスタックに格納されます。山。
// オブジェクトは複数の参照で指すことができますが、1 つの参照は 1 つのオブジェクトのみを指すことができ、オブジェクトが指されていない場合は破棄されます。

ここに画像の説明を挿入

ヌル

Null は Java では「null 参照」、つまりオブジェクトを指さない参照を意味します。

配列パラメータ

//ここはC言語のパラメータ受け渡しに似ています
//配列の内容は参照によって変更できますが、オブジェクトの参照変数は変更できません

配列をコピーする

int[] arr = {1,3,5,7,85};
int[] newarr = Arrays.copyOf(arr, arr.length);
コピーは深いコピーと浅いコピーに分割されます ここに真新しい配列があります、arr はnewarrとは異なります

Arrays.copyOfRange(arr, 0, length)//これは配列の添字です (0, length} (妥当な範囲で、自由に選択できます)

二次元配列

2次元配列の作成

データ型 [][] 配列名 = new データ型 [行番号] [列番号] { }; //以下は 2 次元配列の作成
int[][] arr = new arr[6][3] ];
int[ ][] arr = 新しい arr[][]{ {34,54},{34,65}}:
int[][] arr = 新しい arr{ {34,65},{64,45} };

2 次元配列は実際には特殊な 1 次元配列です

ここに画像の説明を挿入
arr[i]のarr[i][j]には1次元配列のアドレスが格納されます

2次元配列の走査

for(int i = 0; i < arr.length; i++){
    
    
	for(int j = 0; j < arr[i].length; j++){
    
    
		System.out.println("arr[i][j]" + " ")
	}
}
for(int[] arr ; array){
    
    
	for(int a ;  arr){
    
    
		System.out.println("a" + " ");
	}
}

小さな練習を配列する

//バブルソート

public class Main {
    
    
    public static void sort_buttle(int[] arr){
    
    
        for(int i = 0; i < arr.length-1; i++){
    
    
            for(int j = 0; j < arr.length-1-i; j++){
    
    
                if(arr[j] > arr[j+1]){
    
    
                    int tmp  = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = tmp;
                }
            }
        }
    }
    public static void main(String[] args) {
    
    
        Scanner scanner = new Scanner (System.in);
        int[] arr = {
    
    3,5,6,2,4,1,41};
        sort_buttle(arr);
        for(int a : arr){
    
    
            System.out.println(a);
        }
    }
}

おすすめ

転載: blog.csdn.net/zjy521_/article/details/129484272