免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
三の修飾子
、静的静的
あなたは、プロパティ、メソッドを変更することができます
1.静的プロパティ修飾静的プロパティ(クラス変数)
各メンバ変数は、別々の空間のそれぞれに保持された物体であり、一方的オブジェクトが他のオブジェクトに影響を与えない変更します
a)の構文を定義
属性名のアクセス修飾子の静的データ・タイプ。
定義された場所:クラス、メソッドの外に定義され
注:アクセス修飾子静止位置と交換可能。
b)の特徴
静的プロパティは全体クラスで空間を共有している、任意のオブジェクトは、他に、その値を変更します
変化に追従するのが好きです。(すべてのクラスのシェア:シェアを作成し、このクラスのすべてのオブジェクトに基づいて)
c)のアクセス方法
1.オブジェクト名の静的プロパティ名;.(推奨しません)
2.クラスの静的プロパティ名の名前に。
2.静的修飾法静的メソッド(クラスメソッド)
a)の定義構文
アクセス修飾子静的メソッドの戻り型の名前(パラメータリスト){
//メソッドは、達成するために
}
b)のアクセス方法
1.クラスの静的メソッドでクラスにアクセスします。メソッド名(引数);
2.アクセス他のクラス:クラス名メソッド名(引数);
//java.util.Arrays.copyOf()java.util.Arrays.sort()
//java.lang.Math.Sqrt(n); java.lang.Math.PI
C)特徴
1.静的メソッドは、直接、静的メンバーのみにアクセスすることができ、直接非静的メンバにアクセスすることはできません。
原因:あなたは静的メンバにアクセスすると、オブジェクトを作成し、ないかもしれませんが、メソッドのメンバー、メンバ変数
名前(参照)によってオブジェクトの必要性は、その結果は曖昧です。静的な方法でそう
法は、直接静的メンバーのみにアクセスすることができ、あなたは直接、非静的メンバにアクセスすることはできません。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OnAzb1EO-1571962949532)(E:\Corejava\课堂笔记及代码\day13_三个修饰符\笔记\static不能直接访问普通成员.png)]
2. 在静态方法中不能使用this|super的前缀。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yFM7pWlH-1571962949532)(E:\Corejava\课堂笔记及代码\day13_三个修饰符\笔记\static不能直接访问普通成员2.png)]
3. 静态方法可以被继承,静态方法只能被静态方法覆盖,但是没有多态(多态 的特点:指的是父类引用指向子类对象,调用父类中的方法吗,如果这个方 法被子类覆盖了,那么执行的是子类覆盖之后的方法)
Super s = new Sub(); s.m1() 执行的是Super类的方法
s.m1()会被转换成Super.m1();
3. 动态代码块|初始代码块
a) 定义的位置:类中,方法的外面
b) 作用:可以为属性进行初始化的工作
c) 执行地位:在构造方法之前执行,和初始化属性按照顺序进行初始化
的动作.
4. 静态代码块
a) 定义位置: 类中,方法的外面,被static 修饰
b) 作用:为静态属性赋值
c) 执行地位:在类加载时,和静态属性的初始化工作按照顺序进行。
类加载的时候会触发静态代码块的执行
5. 类加载
a) 概念:JVM在第一次使用某一个类的时候会通过CLASSPATH找到编译之后生
成的.class文件,然后将类中所有的信息(类名,属性,方法,构造方
法,包结构,接口…)保存到内存中。类加载只会进行一次。
b) 类加载的时机
1. 第一次创建对象时会触发类加载的进行。
2. 第一次访问静态成员时会触发类加载的进行
3. 子类类加载会触发父类类加载的先进行
4. Class.forName(“全限定名”);
注意:只是声明引用,不创建对象不会进行类加载。
6. 对象的创建过程
a) 没有继承关系的对象创建过程
b)存在继承关系的对象创建过程
二、abstract 抽象的
1. 概念:像却不是的,具备某种对象的特征,但好像又不完整。
2. 可以修饰类和方法
3. abstract可以修饰类 ,此类为抽象类,那么此类就是不够完整,不够具体的类,此类不能new对象。
a) 语法:abstract class 类名{}
b) 抽象类的作用:
1. 可以为子类提供共性的属性和方法,那么父类共性+子类独有=完整的子类对象
(抽象类可以被继承,抽象类存在构造方法,在子类构造方法的第一行默认存
在一个super(),代表调用父类的构造方法,那么构建子类对象之前一定会先
构建父类对象,父类共性+子类独有组合成完整的子类对象)