3. JAVAメソッドのローカル変数 メンバ変数

1. 変数

1.1 概念
変更可能な数値を変数と呼びます。Java 言語では、すべての変数を使用前に宣言する必要があります。
一般に変数は「変数の種類 変数名 = 変数値;」の3つの部分で記述されます。例: int a = 3;
変数使用の原則: 近接性の原則、つまり、変数の使用範囲を最小限に制御するように努めます。

1.2 ローカル変数

場所: メソッド内またはメソッドの宣言で定義
: メモリを割り当てるには手動で初期化する必要があります 例: int i = 5; または int i; i = 5;

1.3 メンバー変数

場所: クラス内のメソッド外に定義 注
: 初期化しない場合は自動的にデフォルト値に初期化されます
ライフサイクル: クラス全体では、クラスが消滅した場合にのみメンバー変数が解放されます

ここに画像の説明を挿入

1.4 演習: 変数のデフォルト値のテスト

パッケージの作成: cn.tedu.basic
クラスの作成: TestVariable1.java

package cn.tedu.design;
/*本类用于测试各种类型变量的默认值*/
public class TestVariable1 {
    
    
        static String name;
        static byte b;//整数类型默认值都是0
        static short c;
        static int d;
        static long e;
        static float f;//小数类型的默认值是0.0
        static double g;
        static char j;//char类型的默认值是\u0000
        static boolean h;//boolean类型的默认值是false

        public static void main(String[] args) {
    
    
            System.out.println(name);//null,引用类型的默认值
            System.out.println(b);
            System.out.println(c);
            System.out.println(d);
            System.out.println(e);
            System.out.println(f);
            System.out.println(g);
            System.out.println(h);
            System.out.println(j);
            System.out.println(h);
        }
    }

1.5 演習: ローカル変数とメンバー変数のテスト

パッケージの作成: cn.tedu.basic
クラスの作成: TestVariable2.java

package cn.tedu.oop;
/**本类用于测试变量的使用*/
public class TestVariable2 {
    
    
    //2.定义成员变量:
    //1)位置:类里方法外
    //2)无需手动初始化,会自动赋予对应类型的默认值
    //3)作用域:在整个类中生效,类消失,变量才会消失
    static int count;
   
    //3.变量有一个使用的原则:就近原则
    static int sum = 200;
    public static void main(String[] args) {
    
    
        //1.定义局部变量:
        //1)位置:在方法里/局部代码块里
        //2)必须手动初始化
        //3)作用域:在方法/局部代码块中,对应的代码执行完局部变量就被释放
        int sum = 100;//定义在方法中的局部变量sum
        System.out.println(sum);//变量的就近原则:使用的都是自己附近的变量,100
        System.out.println(count);
       
        for (int i = 0; i < 10; i++) {
    
    //局部变量i只能在循环中使用
            System.out.println(i);
        }
        //System.out.println(i);//报错:无法引用变量i:i cannot be resolved to a variable
    }
}

2つの方法

2.1 概要
名前付きコード ブロックとメソッドにはパラメーターを含めることも、持たないこともできるため、コードの再利用性が向上します。

2.2 メソッド定義の形式

ここに画像の説明を挿入

2.3 メソッド呼び出しシーケンス図

コードを順番に実行し、指定されたメソッドを呼び出し、実行完了後に呼び出し元の場所に戻ります。

ここに画像の説明を挿入

2.4 演習: メソッドの呼び出し順序/パラメータ/戻り値のテスト

パッケージの作成: cn.tedu.method
クラスの作成: TestMethod .java

package cn.tedu.method;
/**本类用于测试方法*/
public class TestMethod {
    
    
	//1.创建程序的入口函数main()
	public static void main(String[] args) {
    
    
		System.out.println(1);
		/**2.我们通过方法名+参数列表的方式来调用方法的功能*/
		method1();//调用method1()
		System.out.println(2);
		method2(3);//调用method2()
		int result = method3(1,2);//调用method3()
		System.out.println(result);
	}

	/**3.如果方法想要返回值,必须修改返回值类型
	 * 并且return对应类型的结果
	 * 如果方法的返回值类型是void,不允许有返回值
	 * */
	/*本方法用来测试方法的返回值类型*/
	public static int method3(int i, int j) {
    
    
		/**4.通过return关键字将方法结果返回到调用位置*/
		return i+j;
	}

	/**1.方法的修饰符 方法的返回值类型 方法名(方法参数){方法体}*/
	/*method1()想测试方法的调用顺序*/
	public static void method1() {
    
    
		System.out.println(5);
		System.out.println(6);
		System.out.println(7);
	}
	
	/*本方法用来测试方法的参数,参数的位置在小括号里*/
	public static void method2(int a) {
    
    
		System.out.println("海绵宝宝今年:"+ a +"岁啦~");
	}	
}

2.5 メソッドのオーバーロード

メソッドのオーバーロードとは、クラス内に同じ名前を持つ複数のメソッドを定義することを指しますが、各メソッドのパラメーター リストは異なります (つまり、パラメーターの数と型が異なります)。プログラムがメソッドを呼び出すときに、それらのメソッドに渡すことができます。 . どのメソッドを呼び出すかを決定するためのパラメータの数とタイプが異なります。

2.6 演習: テストメソッドのオーバーロード

パッケージの作成: cn.tedu.method
クラスの作成: TestMethodOverload.java

package cn.tedu.method;
/**本类用于测试方法的重载*/
public class TestMethodOverload {
    
    
	public static void main(String[] args) {
    
    
		/**1.我们根据方法名+参数列表确定具体调用哪个方法*/
		/**2.方法的重载:
		 * 在同一个类中,存在方法名相同,但参数列表不同的方法
		 * 如果在同类中,同名方法的参数个数不同,一定构成重载
		 * 如果在同类中,同名方法的参数个数相同,
		 * 需要查看对应位置上参数的类型,而不是参数名,与参数名无关
		 * (int a,String b)与(int b,String a)--不构成重载
		 * (int a,String b)与(String a,int b)--构成重载
		 * */
		//2.调用method()
		method();
		//4.调用method(int)
		method(666);
		//6.调用method(int,String)
		method(888,"泡泡");
	}

	//1.创建一个无参的method()
	public static void method() {
    
    
		System.out.println("哈哈哈哈我没参数");
	}
	//3.创建一个method(int n)
	public static void method(int n) {
    
    
		System.out.println("哈哈哈哈我的参数是:"+n);
	}
	//5.创建一个method(int n,String s)
	public static void method(int a,String b) {
    
    
		System.out.println(b+"今晚要干他"+a+"碗大米饭");
	}
	public static void method(String a,int b) {
    
    
		System.out.println(b+"今晚要干他"+a+"碗大米饭");
	}
}

3 拡張メンバー変数とローカル変数の違い

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_58276266/article/details/131460729