静态字段和静态方法

2024-09-04 14:44
文章标签 静态 字段 静态方法

本文主要是介绍静态字段和静态方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 静态字段

        1. 用static修饰的字段。
        2. 实例字段在每个实例中有自己的独立”空间“,静态字段只有共享”空间“,所有实例共享该字段。
        3. 使用”类名.静态字段“调用静态字段,静态字段不属于实例,是类class本身的字段。
        4. ”实例变量.静态字段“访问静态变量不推荐,因为在java程序中,实例对象没有静态字段,实例对象能访问静态字段是因为编译器可以根据实例类型自动转换为”类名.静态字段“来访问静态变量。

2. 静态方法

        1. 用static修饰的方法。
        2. 使用”类名.静态方法“调用静态方法,静态方法类似其他语言的函数。
        3. 因为静态方法属于class而不属于实例,所以,静态方法内部,无法访问this变量,也无法访问实例字段,只能访问静态字段。
        4. 使用”实例变量.静态方法“访问静态方法不推荐,能编译通过是因为编译器根据实例类型自动转换为”类名.静态方法“来访问静态方法。
        5. 静态方法常用于工具类。

3. 接口的静态字段

        1. 因为interface是一个纯抽象类,不能被实例化,所以不能定义实例字段,但是interface本质也是一个class,所以它可以有静态字段,但静态字段必须是final类型。
        2. 实际上,因为interface的字段只能是”public static final“类型,所以编译器会自动加上,修饰符直接去掉。

4.总结

        1. 静态代码块,程序一加载就运行,最早执行,只执行一次。
        2. 静态方法区的属性和方法在类中是共享的唯一的(不允许被重写),不属于某个实例;创建多个实例,只要修改了一个实例,所有的实例都会被修改。
        3. 因为静态属性和方法是共享的,属于类,所以用“类名.属性”或“类名.方法名”直接调用。
        4. static和final同时修饰叫做全局常量。

这篇关于静态字段和静态方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1136270

相关文章

019、JOptionPane类的常用静态方法详解

目录 JOptionPane类的常用静态方法详解 1. showInputDialog()方法 1.1基本用法 1.2带有默认值的输入框 1.3带有选项的输入对话框 1.4自定义图标的输入对话框 2. showConfirmDialog()方法 2.1基本用法 2.2自定义按钮和图标 2.3带有自定义组件的确认对话框 3. showMessageDialog()方法 3.1

Thymeleaf:生成静态文件及异常处理java.lang.NoClassDefFoundError: ognl/PropertyAccessor

我们需要引入包: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>sp

C++/《C++为什么要有静态成员函数》

摘要        本文说明了什么是静态成员变量,什么是静态成员函数的概念,讨论了访问私有静态成员变量的三个方法。得出用静态成员函数访问静态私有成员变量是最佳方法即回答了“C++为什么要有静态成员函数“的问题。 类的静态成员 我们可以使用 static 关键字来把类成员定义为静态的。当我们声明类的成员为静态时,这意味着无论创建多少个类的对象,静态成员都只有一个副本。静态成员在类的所有对象中是

c++的静态变化!

静态成员   对于非静态成员,一个类的每个对象都自己存有一个副本,每个对象根据自己拥有的非静态的数据成员来区别于其他对象。而静态成员则解决了同一个类的多个对象之间数据和函数的共享问题。   静态数据成员   静态数据成员的作用是:实现同一类的不同对象之间的数据共享。   #include<IOSTREAM>   using namespace std;   class Po

本地如何快速启动静态服务器

本地快速启动静态服务器 有许多第三方库可以帮助你快速启动一个静态服务器,甚至无需编写代码。通过命令行运行这些库后,它们会自动启动一个服务器并打开指定端口,展示当前目录下的文件内容: 电脑得提前安装NodeJS 1、http-server http-server 是一个轻量级的命令行工具,允许你快速启动一个静态文件服务器。 安装 npm install -g http-server

mysql数据库member中telephone字段被篡改

现在准备查询log日志文件,看下被操作的原因是什么

java的Timestamp时间插入mysql的datetime字段是0000-00-00 00:00:00

Mysql 与 java 的时间类型             MySql的时间类型有              Java 中与之对应的时间类型                  date                                               java.sql.Date               Datetime

PL/SQL工具创建Oracle数据库表,实现id字段的自动递增

通过PL/SQL工具,创建Oracle数据库表,如何实现字段ID自动递增; Oracle的自增需要依靠序列和触发器共同实现 比如:先创建一个表 create table test (id int primary key, name varchar2(10)); 创建一个序列 create sequence test_seq increment by 1 start with 1  min

linux基础IO——动静态库——进程编址、进程执行、动态库加载

前言:本节内容为基础IO部分的最后一节, 主要是为了讲一下动静态库里面的动态库如何加载到内存, 动态库的地址等等。 但是,这些内容牵扯到了程序的编址, 程序的加载, 进程的执行等等知识点, 所以,我们会从程序的编址讲起, 一直到进程的执行, 以及动态库加载结束。         ps:本节内容涉及到了进程地址空间, 磁盘的内容, 建议友友们了解相关知识后再来观看。 目录

(六十四)第 10 章 内部排序(静态链表的插入排序)

示例代码 staticLinkList.h // 静态链表的插入排序实现头文件#ifndef STATIC_LINK_LIST_H#define STATIC_LINK_LIST_H#include "errorRecord.h"#define SIZE 100#define NUM 8typedef int InfoType;typedef int KeyType;ty