首页 > 其他分享 >static关键字

static关键字

时间:2024-03-07 14:00:29浏览次数:27  
标签:语句 变量 静态 demo 关键字 实例 static

静态变量

  • 静态变量也称为类变量,这个变量是属于类的,类的所有实例都共享静态变量,可以通过类名来访问他们。静态变量在内存中只存在一份。
  • 实例变量:每创建一个实例就产生一个实例变量,与实例同时产生,同时销毁。
/**
 * @author Pickle
 * @version V1.0
 * @date 2024/3/5 11:27
 */
public class demo {
    private static int x = 10;
    private int y;
    public static void main(String[] args) {
        demo.x = 20;
        int a = demo.x;
        int b = new demo().y;
        System.out.println(a + " " + b);
    }
}

静态方法

静态方法在类加载的时候就存在了,它不依赖于任何实例,所以静态方法必须有实现,不能是抽象方法。

只能访问静态字段或者静态方法,方法中不能含有this和super。

静态语句块

静态语句块在类初始化时运行一次。

import java.util.*;
import java.util.function.Consumer;

/**
 * @author Pickle
 * @version V1.0
 * @date 2024/3/5 11:27
 */
public class demo {
    static{
        System.out.println("Initialization");
    }

    public static void main(String[] args) {
        demo a = new demo();
        demo b = new demo();
        demo c = new demo();
        demo d = new demo();
    }
}

输出

Initialization

静态内部类

静态内部类不依赖于外部类的实例,静态内部类不能访问外部类的非静态的变量和方法。

初始化顺序

静态变量和静态语句块优先于实例变量和普通语句块,静态变量和静态语句块的初始化顺序取决于它们在代码中的顺序。

存在继承的情况下,初始化的顺序为

  • 父类(静态变量、静态语句块)
  • 子类(静态变量、静态语句块)
  • 父类(实例变量,普通语句块)
  • 父类(构造函数)
  • 子类(实例变量、普通语句块)
  • 子类(构造函数)

标签:语句,变量,静态,demo,关键字,实例,static
From: https://www.cnblogs.com/poteitoutou/p/18058375

相关文章

  • static修饰静态成员变量and静态成员函数
    在成员变量和成员函数之前加上static关键词,称为静态成员静态成员分为:(1)静态成员变量所有对象都共享同一份数据编译阶段就分配内存类内生命,类外进行初始化操作(2)静态成员函数程序共享一个函数静态成员函数只能访问静态成员变量实例代码1(静态成员变量):#include<iostrea......
  • JavaSE的第九步 —— 循环中常用到的关键字break和continue
    一、break语句在嵌套for循环中用到break的时候代表着,跳出整个循环 例如:publicstaticvoidmain(String[]args){ inti=0; //这样看起来是判断条件一直为true,那么就会死循环下去 while(true){ System.out.println("i="+i); i++; //但是这里添加了break语句,......
  • Auto关键字
    在C++中,auto关键字用于自动类型推导,它让编译器能够自动确定变量的类型。这个特性最初在C++11标准中引入,旨在简化代码编写,提高代码的可读性和可维护性。使用auto时,编译器会根据变量的初始化表达式推断其类型。使用场景和好处迭代器和复杂类型:当处理STL容器如std::vect......
  • Oracle中不允许表的列名称使用Oracle声明的关键字! (ORA-01747: user.table.column, t
    1.问题ORA-01747:user.table.column,table.column或列说明无效--Oracle下,根据商品价格从高到低取4-6名商品SELECT*FROM( SELECTROWNUM,t1.* FROM( SELECTprod_name,prod_price FROMPRODUCTS ORDERBYPROD_PRICEDESC )t1 WHEREROWNUM<=6......
  • 以不变应万变:final关键字和不变形
    以不变应万变:final关键字和不变形目录以不变应万变:final关键字和不变形什么是不变形(Immutable)final的作用3种用法:修饰变量、方法、类赋值时机注意点final修饰方法final修饰类总结不变性和final的关系总结出,满足以下条件时,对象才是不可变的把变量写在线程内部——栈封闭什么是不......
  • C# new 关键字用法
    试题回答参考思路:一,用法总结:在c#中,new关键字可用作运算符,声明修饰符,约束。1)new运算符:new运算符创建类型的新实例,调用构造函数(如果继承了基类,同时会调用基类的构造函数)。2)new声明修饰符:2.1)在用作声明修饰符时,new关键字可以显式隐藏从基类继承的成员。派生类成员变量被new关键字......
  • JAVA面向对象基础:this关键字
    this;this就是一个变量,可以用在方法中,来拿到拿到当前对象   this的应用场景:this主要用来解决变量名称冲突问题的。   this真正解析: ......
  • C++系列:const关键字
    前言在学习C++时,const关键字的知识点分散在书的各个章节。当我们尝试在编程时使用const时,总会感觉有一些细节被遗忘,因而不能得心应手地使用const关键字。因此,本篇文章尝试着对const关键字的做一些总结。参考书籍《C++PrimerPlus》const总结这里是我做的关于const关键字的一些......
  • void关键字
    #include<iostream>//void关键字代表空,可以用作函数前声明返回值类型,代表无返回值//例如:voidfun(){}//可以放在函数的形参位置代表不需要参数voidfun(void){}//*****主要是第三种,void*放在形参位置用于接收任意类型的指针。//但是解引用的时候必须强制转换为明确的......
  • 4_C# 中的 ref 关键字有什么作用
    C#中的ref关键字有什么作用?参数在使用ref关键字进行引用传递时,必须在方法调用之前对其进行初始化。ref关键字既可以在进入方法之前初始化参数的值,也可以在方法内部对参数进行修改。ref参数在进入方法时保持原始值,并在方法结束后将值带回到调用处。ref关键字的作用:......