修饰符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:
任何地方都可以访问
能继承到子类
分享到:
相关推荐
fourth assignment - prototype design ppt
《Java教程》第四版是Java开发者的重要学习资源,它详细介绍了Java编程语言的核心概念和技术。这本书的电子版以CHM(MicrosoftCompiled HTML Help)格式提供,便于在计算机上离线查阅。以下是对这个压缩包中包含的...
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]
- **SQL 基础**:介绍 SQL 语言的基本语法,包括 SELECT、INSERT、UPDATE 和 DELETE 等语句。 - **查询语句**:详细讲解如何构建复杂的查询语句,包括 JOIN、子查询等高级特性。 - **事务管理**:讲解如何使用事务来...
"SSD4"可能代表"System Software Development for the Fourth Generation",暗示课程旨在帮助学员掌握第四代系统软件开发中的Java应用。这套课件可能涵盖了Java的基础语法、面向对象编程概念、高级特性以及实际项目...
Java核心编程笔记fourth 是一份详细的 Java 编程笔记,涵盖了 Java 基础知识、变量、数据类型、流程控制、修饰符、动作、保留字等方面的知识点。 一、标识符 在 Java 中,标识符是由数字、字母、下划线(_)和美元...
- **访问控制修饰符**:详解`public`、`private`、`protected`以及包访问权限的作用。 - **抽象类与接口**:对比抽象类与接口的差异,分析何时使用何种形式来实现封装。 #### 第6章 类再生 - **类的加载与卸载**:...
Final-project-2020-Trannoi 2020-2021年实验室程序规划考试的最终项目模板。 插入名称:曼努埃尔姓氏:Rovitti 序列号:331681 以及有关项目实施的任何注释,例如相对于所分配项目的文本添加或修改的新功能。
Final-project-2020-Trannoi 2020-2021年实验室程序规划考试的最终项目模板。 插入 名: 姓: 序列号: 以及有关项目实施的任何注释,例如相对于所分配项目的文本添加或修改的新功能。
Final-project-2020-Trannoi 2020-2021年实验室程序规划考试的最终项目模板。 插入名: 姓: 序列号: 以及有关项目实施的任何注释,例如相对于所分配项目的文本添加或修改的新功能。
文章标题为“Dependence of Eigenvalues on the Regular Fourth-Order Sturm-Liouville Problem”,其主要内容是关于四阶正则Sturm-Liouville问题特征值的依赖性研究。Sturm-Liouville问题是一类重要的边界值问题,...
《Java教程第四版》是Sun Microsystems(现已被Oracle公司收购)官方发布的一本入门级Java编程教程,旨在为初学者提供全面而扎实的Java基础知识。这本书涵盖了Java语言的核心概念、语法以及开发工具的使用,是Java...
由于上传的限制,本文件是压缩文件的第一部分,请继续下载第二部分。 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 ...
文档"Fourth order Runge - Kutta .doc"很可能包含了详细的步骤、公式以及如何将四阶龙格-库塔应用于四元数姿态解算的具体实现。通常,该文档会介绍以下内容: 1. 四阶龙格-库塔的基本公式,包括四个中间步骤和最终...
### Java How to Program (Fourth Edition) - 关键知识点解析 #### 一、基本计算机科学概念的理解 - **计算机科学基础**: 本章节首先介绍了计算机科学的基本概念,包括计算机硬件、软件以及它们之间的交互方式。 - ...