デフォルト初期化について


Exercise 1: (2) Create a class containing an int and a char that are not initialized, and print their values to verify that Java performs default initialization.
練習:Java実行力のデフォルト初期化を検証するために、intドメインとcharドメインを含むクラスを作成します.彼らは初期化されていません.彼らの値を印刷します.
実行できるプログラムは次のとおりです.
public class Ex1 
{
   static int i;
   static char ch;
   public static void main(String[] args)
   {
       System.out.println("The default value for \"int\" is"+i);
       System.out.println("The default value for \"char\" is"+ch);
   }
}

エラー1:
public class Ex1 
{
   
   public static void main(String[] args)
   {  
       static int i;
       static char ch;
       System.out.println("The default value for \"int\" is"+i);
       System.out.println("The default value for \"char\" is"+ch);
   }
}

エラー2:
public class Ex1 
{
   
   public static void main(String[] args)
   {  
       int i;
       char ch;
       System.out.println("The default value for \"int\" is"+i);
       System.out.println("The default value for \"char\" is"+ch);
   }
}

注意点:
1.エラー1説明
The default values are only what Java guarantees when the variable is used as a member of a class. This ensures that member variables of primitive types will always be initialized (something C++ doesn’t do), reducing a source of bugs. However, this initial value may not be correct or even legal for the program you are writing. It’s best to always explicitly initialize your variables.
2.エラー2説明
Staticのキーワードの使い方について、static variableがどのような役割を果たすかについては、以下に説明します.
One is if you want to have only a single piece of storage for a particular field, regardless of how many objects of that class are created, or even if no objects are created. The other is if you need a method that isn’t associated with any particular object of this class. That is, you need a method that you can call even if no objects are created.
3.デフォルトの説明について
プライマリ・データ型がクラス・メンバーに属している場合、初期化が明示的でなくてもデフォルト値が得られることを保証できます.この保証は、クラスのフィールドではない「ローカル」変数には適用されません.