您的位置:首页 > 汽车 > 新车 > 大连房产网_上网登录页网址_小程序开发教程全集免费_电商运营助理

大连房产网_上网登录页网址_小程序开发教程全集免费_电商运营助理

2024/11/19 11:37:54 来源:https://blog.csdn.net/m0_74363339/article/details/143385683  浏览:    关键词:大连房产网_上网登录页网址_小程序开发教程全集免费_电商运营助理
大连房产网_上网登录页网址_小程序开发教程全集免费_电商运营助理

目录

一、static关键字。

(1)牛客网题目。

(2)总结。

<1>静态变量。(类变量)

1、特点。

2、补充与注意。

3、代码演示。

<2>静态方法

1、特点。

2、补充与注意。

3、代码演示。

<3>静态代码块。

1、特点。

2、补充与注意。

3、代码演示。

<4>静态内部类。

1、特点。

2、注意事项。

3、代码演示。


一、static关键字。

(1)牛客网题目。


题目:关于static说法不正确的是?


答案:D。


优秀评论

(2)总结。

  • 在Java中,static关键字是一个非常重要的修饰符。它有多种用途:主要用于修饰变量方法代码块内部类

<1>静态变量。(类变量)
1、特点。
  • 程序中使用static修饰属性,则该属性称为静态属性。(全局属性)
  • 静态变量属于类,而不是类的实例(对象)。
  • 静态变量在类加载时初始化,且只初始化一次
  • 可以通过类名直接访问,也可以通过实例访问(但不推荐)。
  • 静态变量在内存中只有一份,无论创建多少个对象,静态变量都共享这一份内存。

2、补充与注意。
  • static不能修饰局部变量。否则编译器会报错!
  • 例如下面的代码是不合法的!


3、代码演示。
public class MyClass {  static int staticVar = 10;  
}  // 访问方式  
MyClass.staticVar = 20; // 通过类名访问  
MyClass obj = new MyClass();  
obj.staticVar = 30;     // 通过实例访问(不推荐)

<2>静态方法
  • 通常如果想要使用类中的成员方法,就需要先将这个类实例化。
  • 实际开发中,开发人员可以通过类名直接调用某个需要的方法。(静态方法)只需要在成员方法前加上static关键字即可。

1、特点。
  • 静态方法属于类,而不是类的实例
  • 静态方法不能直接访问实例变量或实例方法(除非通过对象引用)。
  • 静态方法可以通过类名直接调用,也可以通过实例调用(但不推荐)。
  • 静态方法中不能使用thissuper关键字

2、补充与注意。
  • 静态方法只能访问静态成员。
  • 非静态成员需要先创建对象才能访问,即随着对象的创建,非静态成员才会分配内存!而静态方法在被调用时可以不创建任何对象
  • 静态方法不能直接访问实例成员,但可以通过对象引用访问。

3、代码演示。
public class MyClass {  static void staticMethod() {  System.out.println("This is a static method.");  }  
}  // 调用方式  
MyClass.staticMethod(); // 通过类名调用  
MyClass obj = new MyClass();  
obj.staticMethod();     // 通过实例调用(不推荐)

<3>静态代码块。
  • 在Java类中,用static关键字修饰的代码块被称为静态代码块。

1、特点。

  • 当类被加载时,静态代码块就会执行。(由于类只加载一次,静态代码块在类加载时执行,所以只执行一次
  • 常用于静态变量的复杂初始化
  • 多个静态代码块按照出现的顺序执行。

2、补充与注意。
  • 代码块的执行顺序:静态代码块——>构造代码块——>构造方法。
  • static修饰的代码块会随着class文件一同加载,属于优先级最高的代码块。

3、代码演示。
public class MyClass {  static int staticVar;  static {  staticVar = 20;  System.out.println("Static block executed.(静态代码块被执行!)");  }  
}

<4>静态内部类。
  • 静态内部类,就是使用static关键字修饰的成员内部类
  • 静态内部类只能访问外部类的静态成员

1、特点。
  • 静态内部类不依赖于外部类的实例。
  • 静态内部类可以直接通过外部类名访问,而不需要外部类的实例。
  • 静态内部类不能访问外部类的非静态成员。(变量和方法)

2、注意事项。
  • 通过外部类访问静态内部类成员时,因为程序已经提前在静态常量区为静态内部类分配好了内存
  • 所以即使静态内部类没有加载,依然可以通过外部类直接创建一个静态内部类对象
  • 静态内部类不依赖于外部类的实例,可以直接通过外部类名访问
  • 创建静态内部类对象的语法如下
外部类名.静态内部类名 变量名 = new 外部类名.静态内部类名 ();

3、代码演示。
  • 外部类:"Test02"。
  • 静态内部类:"Inner"。
/*** @Title: Test02* @Author HeYouLong* @Package PACKAGE_NAME* @Date 2024/10/31 上午11:46* @description: 测试类02*/
public class Test02 {static int m =666;static class Inner{int n = 1;void showOuterClass(){System.out.println("访问到外部类的静态成员变量m="+m);}}public static void main(String[] args) {Test02.Inner inner = new Test02.Inner();inner.showOuterClass();}
}
  • 结果测试。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com