修饰符static: 把对象相关的变成类相关的,它可以修饰属性、方法、代码块和内部类
static修饰属性(类变量):
那么这个属性就可以用" 类名.属性名 "来访问,也就是使这个属性成为本类的类变量,为本类对象所共享。
类加载的过程,类本身也是保存在文件中(字节码文件保存着类的信息)的,java会通过I/O流把类的文件读入JVM(java虚拟机),这个过程称为类的加载。JVM会通过类路径(CLASSPATH)来找字节码文件。需要的时候才会进行类加载,生成对象时是先加载后构造
类变量,会在加载时自动初始化,初始化规则和实例变量相同。
注意:
类中的实例变量是在创建对象时被初始化的
static修饰的属性,是在类加载时被创建并进行初始化,类加载的过程只进行一次,也就是类变量只会被创建一次。
static修饰方法(静态方法):
会使这个方法成为整个类所公有的方法,可以用" 类名.方法名 "访问。
static修饰的方法,不能直接访问本类中的非静态成员,但本类的非静态方法可以访问本类的静态成员。
在静态方法中不能出现this关键字。
父类中是静态方法,子类中不能覆盖为非静态方法,在符合覆盖规则的前提下,在父子类中,父类中的静态方法可以被子类中的静态方法覆盖,但是没有多态。(在使用对象调用静态方法时其实是调用编译时类型的静态方法)
java中的main方法必须写成static的原因:在类加载时无法创建对象,而静态方法可以不通过对象调用,所以在类加载时就可以通过main方法入口来运行程序。
static修饰初始代码块:
这时这个初始代码块就叫做静态初始代码块,这个代码块只在类加载时被执行一次。
可以用静态初始代码块初始化一个类。
动态初始代码块,写在类体中的“{}”,这个代码块是在生成对象时运行,这种代码块叫动态初始代码块。
单例设计模式:
一个类只允许有一个对象,保证所有引用的对象都是同一个对象。
因为只允许存在一个对象,则不允许在外面直接new出新的对象,所以应该把构造器设为private,。
在类内定义一个公开的静态方法,让使用者进行调用,通过该方法去获得一个实例。
例:
public calss Singleton{
private static Singleton s;
private Singleton(){}
public static Singleton newInstance(){
if ( s == null)
s = new Singleton();
return s;
}
}
修饰符final:不允许改变,可以修饰变量、方法、类
final修饰变量:
被fianl修饰的变量就会变成常量,一旦赋值不能改变
常量可以在初始化时直接赋值,也可以在构造方法里赋值,只能在这两种方法里二选一,不能不为常量赋值
常量不会有默认初始值
锁定栈,使栈中的数据不可以改变
静态常量只能在初始化时直接赋值
final修饰方法:
被final修饰的方法将不能被其子类覆盖,保持方法的稳定不能被覆盖
final修饰类:
被final修饰的类将不能被继承
final类中的方法也都是final的
注意:
final不能用来修饰构造方法
访问权限控制:
private:
本类内部可以访问
不能继承到子类
default:
本类内部可以访问,同包其他类也可以访问。
同包可继承
protected:
本类内部可以访问,不同包的子类也可以访问,同包其他类也可以访问。
能继承到子类
public:
任何地方都可以访问
能继承到子类
分享到:
相关推荐
Microsoft Computer Dictionary - Fourth Edition - MS Press (ebook)
Handbook on the Toxicology of Metals, Fourth Edition-[4]-[Gunnar F Nordberg, Bruce A Fowler, Monica Nordberg]
The Java Tutorial, 4th Edtion
Part 1: Legislation and standards - EMC directive and standards ... Part 2: Testing - RF emissions & Immunity & Low frequency tests ... Part 3: Design - Interference coupling mechanisms & Layout and ...
Final-project-2020-Trannoi 2020-2021年实验室程序规划考试的最终项目模板。 插入名称:曼努埃尔姓氏:Rovitti 序列号:331681 以及有关项目实施的任何注释,例如相对于所分配项目的文本添加或修改的新功能。
Final-project-2020-Trannoi 2020-2021年实验室程序规划考试的最终项目模板。 插入名: 姓: 序列号: 以及有关项目实施的任何注释,例如相对于所分配项目的文本添加或修改的新功能。
Final-project-2020-Trannoi 2020-2021年实验室程序规划考试的最终项目模板。 插入 名: 姓: 序列号: 以及有关项目实施的任何注释,例如相对于所分配项目的文本添加或修改的新功能。
由于上传的限制,本文件是压缩文件的第一部分,请继续下载第二部分。 ASP.NET 4 is the latest version of Microsoft's revolutionary ASP.NET technology. It is the principal standard for creating dynamic web ...
由于上传的限制,本文件是压缩文件的第二部分,请继续下载第一部分。 ASP.NET 4 is the latest version of Microsoft's revolutionary ASP.NET technology. It is the principal standard for creating dynamic web ...
关于4G中MIMO-OFDM的经典论文,主要是关于性能核系统设计!
About-the-Authors_2016_Petrophysics-Fourth-Edition
四阶正则S-L问题的特征值的依赖性,索建青,师志洁,Sturm-Liouville 问题的特征值不仅连续而且光滑依赖于该问题,本文给出了特征值关于给定系数:区间端点、边界条件、系数、和权函数的导�
四阶累积量MUSIC和常规二阶MUSIC性能对比
the java programming language fourth editionArnoldGoslingHolmes06 Direct from the creators of the Java™ programming language, the completely revised fourth edition of The Java™ Programming Language ...
四阶龙格-库塔算法在姿态解算中的应用,是实现圆锥运动的姿态解算。当旋转角速率w为定值的时候,我用龙格-库塔算法很容易解出了姿态矩阵四元数。
Fourth_Course.java
ignite-fourth-challenge-solid
关于ADIS16405的三轴陀螺姿态计算程序,用的是四阶龙格库塔法,单片机是STM32F103,对于ADIS16405的SPI采样是模拟方式,验证通过非常实用
另一种用Java语言编写的四人制游戏-可以与计算机玩(多个级别)-可以使用网络模式-可以使用法语和英语
对四阶lu系统采用不变流形方法实现系统同步的仿真程序