Javaの基本的な修飾子

1.パッケージ(パッケージ)

  1. パッケージ:実際にはフォルダです
  2. 機能:クラスの分類と管理
  3. パッケージ定義形式:パッケージパッケージ名(マルチレベルパッケージ名は。で区切られます)
  4. パッケージのインポート:異なるパッケージでクラスを使用する場合は、単純化するためにクラスのフルパスを記述する必要があります。インポートを使用してください
  5. パッケージ形式のインポート:パッケージ名のインポート;例:importcom.Demo.a1;またはimportcom.Demo。*;
  6. 同じパッケージの下にある場合は、パッケージをインポートする必要はありません。

2.ステータス修飾子

1.最終(最終状態)

  1. finalキーワードの意味:final、変更後は変更できなくなります
  2. finalで変更できるもの:変更されたクラス、変更されたメソッド、変数
  3. 変更されたクラス:
  • クラスが最終クラスであることを示し、このクラスがサブクラスを持つことができないことを示します(他のクラスに継承することはできません)
  • クラスがファイナライズされている場合、このクラスのすべてのメソッドをオーバーライドすることはできません
  1. 変更されたメソッド:
    メソッドが最終的に変更された場合、このメソッドはオーバーライドできません
  2. 変更された変数:
  • 変数がfinalによって変更された場合、それは定数になり、1回だけ再度割り当てることはできません。
  • 定義と割り当てを同時に行うことができます。例:final int a = 10
  • 定義と割り当ては分離されていますが、割り当てることができるのは1回だけです; final int b; b = 10
  • finalを使用して定義された変数は、次のように呼ばれます。定数と定数名は、純粋な大文字を使用し、複数の単語の間にアンダースコアを使用する必要があります。finalint MAX_VAULE = 10; final int MIN = 1
  1. ローカル変数を変更します。
  • 最終的に変更される変数は基本型のデータ値であり、変更されません
  • 最終的に変更された変数が参照型の場合、アドレス値は変更されませんが、アドレスの内容は変更できます。
  1. コードケース:
public class Student {
    
    
    public int age = 21;
}
public class finalDemo {
    
    
    public static void main(String[] args) {
    
    
        //final修饰基本类型变量
        final int age = 30;//final int age;先修饰再赋值就不会报错
        //      age=100;
        System.out.println(age);//输出age为30
        //final修饰引用类型变量
        final Student s = new Student();//修饰的地址值不变
        s.age = 200;//但内容可以改变
        System.out.println(s);//输出地址值为@49e4cb85
        s.age = 300;
        System.out.println(s);//输出地址值还是没改变为@49e4cb85
        System.out.println(s.age);//输出s.age=300;
//        s=new Student();不能创建新的地址值
    }
}

2.静的(静的)

  1. staticキーワードの意味:static;メンバーメソッド、メンバー変数、メンバーメソッドを変更できます
  2. 静的変更機能:クラスのすべてのオブジェクトによる共有アクセス
  3. コードケース:
public class Student {
    
    
    public int age;
    public String name;
    public static String university;//static被类的所有对象共享访问
    public void show() {
    
    
        System.out.println(age + "," + name + "," + university);
    }
}
public class StaticDemo {
    
    
    public static void main(String[] args) {
    
    
        //静态变量访问特点:一般直接通过类名调用也可以通过对象名调用
        //static被类的所有对象共享访问
        Student.university="qinghua";

        Student s = new Student();
        s.age = 20;
        s.name = "xiaojiang";
    //    s.university = "qinghua";
        s.show();
        Student s2 = new Student();
        s2.age = 21;
        s2.name = "xiaoning";
        //    s2.university="qinghua";
        s2.show();
       // s2.university = "武汉大学";则xiaoyun为武汉大学
        Student s3 = new Student();
        s3.age = 22;
        s3.name = "xiaoyun";
        s3.show();
        //输出20,xiaojiang,qinghua
        //21,xiaoning,qinghua
        //22,xiaoyun,qinghua
    }
}
  1. 静的アクセス機能:要するに、静的メンバーメソッドは静的メンバーにのみアクセスできます
  • 非静的メンバーメソッド:
    • 静的メンバー変数にアクセスする機能
    • 非静的メンバー変数にアクセスする機能
    • 静的メンバーメソッドにアクセスする機能
    • 非静的メンバーメソッドにアクセスする機能
  • 静的メンバーメソッド:
    • メンバー変数にアクセスできますが、直接アクセスすることはできません
    • メンバーメソッドにアクセスできますが、直接アクセスすることはできません
  1. コードケース:

public class Student2 {
    
    
    //非静态成员变量
    public String name = "xiaojiang";
    //静态成员变量
    public static String university = "beida";

    //非静态成员方法
    public void show1() {
    
    
        System.out.println(name);
        System.out.println(university);
        show2(); //非静态都可以访问静态的和非静态的成员方法和成员变量
        show3();
    }
    public void show2() {
    
    

    }
    //静态成员方法
    public static void show3() {
    
    
//        System.out.println(name);
        System.out.println(university);
//        show1();
//        show2();
        show3();//静态只能静态的成员变量,成员方法
        show4();
    }
    public static void show4() {
    
    

    }
}
  1. 静的アプリケーション:
public class Student {
    
    
    //非静态成员属性
    public int age;
    //静态成员属性
    public static String name;

    //非静态成员方法
    public void show1() {
    
    
        System.out.println("非静态show1成员方法");
    }

    //静态成员方法
    public static void show2() {
    
    
        System.out.println("静态show2成员方法");
    }
}
public class Demo {
    
    
    public static void main(String[] args) {
    
    
        Student s = new Student();
        //通过创建对象调用
        s.show1();
        s.age = 20;
        System.out.println(s.age);
        //还可以通过类名来调用;静态调用静态的成员属性和方法
        //静态的内容既可以使用对象名访问,也可以使用类名访问.但是最好使用类名来访问.
        Student.show2();
        Student.name = "xiaojiang";
        System.out.println(Student.name);
    /*输出  非静态show1成员方法
           20
          静态show2成员方法
          xiaojiang  */
    }
}
  1. Javaでの静的アプリケーションシナリオ定数定数:
public class Constant {
    
    
    //常量 不可以被改变的量(final)
    //常量名称全部都为大写  crtl+shift+u 点击常量可调整大小写
    //常量访问可以通过类名.
    //CODE_10== 成功
    public final static int CODE_10 = 10;
    //CODE_20== 错误
    public final static int CODE_20 = 20;
    //CODE_30== 找不到
    public final static int CODE_30 = 30;
}
public class ConstantDemo {
    
    
    public static void main(String[] args) {
    
    
        //    Constant constant = new Constant();
        //    constant.CODE=300;
        int code = 10;
        if (Constant.CODE_10 == code) {
    
    
            System.out.println("成功");
            return;
        }
        if (Constant.CODE_20 == code) {
    
    
            System.out.println("错误");
            return;
        }
        if (Constant.CODE_30 == code) {
    
    
            System.out.println("找不到");
            return;
        }
    }
}

おすすめ

転載: blog.csdn.net/weixin_62991876/article/details/123426156