当前位置: 首页 > article >正文

12.Java基础概念-面向对象-static

欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

Facts speak louder than words!


一、static关键字的含义

  • 在Java中,static关键字用于修饰类、方法和变量
  • static既可以用来修饰成员变量也可以用来修饰成员方法
  • static修饰的成员变量叫作静态成员变量(类变量),修饰的成员方法叫作静态成员方法(类方法)
  • static修饰后的成员变量可以被类的所有对象共享(访问,修改),但注意它不属于某一个对象。⭐


二、static修饰成员变量

static修饰的成员变量是静态成员变量,它是属于类的,只加载一次,内存中只有一份

访问格式:

类名.静态成员变量名

使用场景:
静态成员变量:表示如班级等类的所有对象共享的信息时。

静态成员变量的特性:
不属于某个对象,是类的属性,所有对象共享的,不存储在某个对象的空间中
即可以通过对象进行访问,也可以通过类进行访问
类变量存储在方法区中
随类的加载而加载,随类的销毁而销毁

public class Person {
 
	 String name; 
	 int age;
	 static String city = "苏州";  // 静态变量,属于类,所有对象共享。
	 
	public Person(String name, int age) {
		super();
		this.name = name;
		this.age = age;
	}
	
	public void  talk() {
		System.out.println("我是:"+this.name + " 年龄:"+this.age+" 来自:"+city);
	}
	
	public static void main(String[] args) {
		Person p1 = new Person("张三",18);
		Person p2 = new Person("李四",19);
		p1.talk();
		p2.talk();
	}
	
	 
}

三、static修饰成员方法

static修饰的成员方法是静态成员方法,是属于类的方法。

访问格式:

类名.静态成员变量

使用场景:

该方法是一个公用的功能,比如说话talk。

静态成员方法的特性:
不属于某个对象,是类方法
即可以通过对象进行访问,也可以通过类.方法名进行访问
不能在静态成员方法中访问任何非静态成员变量

public class Person {
	
	 String name;
 
	static String city = "深圳"; 
	 
	public void say(String name) {
		this.name = name;
		
	}
 
	public static void  talk() {
		//say("张三");//静态方法不能调用非静态方法,编译不通过
		//this. 不能使用this关键字
		//super.不能使用super关键字
		System.out.println("我来自:"+city);
	}
	
	public static void main(String[] args) {
		talk(); //没有实例化对象,talk方法就可以直接使用
	}
	
	 
}

 四、static修饰代码块

        static 修改代码块称为静态代码块。静态代码块,是 Java 类中的 static{ } 修饰的代码。用于类初始化时为类的静态变量赋初始值,提升程序性能

public class Person {
	
	static { // 静态代码块
		
	}
	 
}

五、static修饰内部类

static修饰内部类称为静态内部类,在创建内部类的实例时,不需要创建外部类的实例

public class Outer {
    static class Inner {

    }
}
     class OtherClass {

    //在创建静态内部类的实例时,不需要创建外部类的实例
    Outer.Inner inner = new Outer.Inner();

}

题外话:

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥The road is long and the line is coming,让我们一起加油吧!🌙🌙🌙


http://www.kler.cn/news/314589.html

相关文章:

  • 2024“华为杯”中国研究生数学建模竞赛(A题)深度剖析_数学建模完整过程+详细思路+代码全解析
  • 无线安全(WiFi)
  • 【MySQ】在MySQL里with 的用法
  • 【技术解析】消息中间件MQ:从原理到RabbitMQ实战(深入浅出)
  • 计算机毕业设计之:基于微信小程序的校园流浪猫收养系统(源码+文档+讲解)
  • WEB 编程:富文本编辑器 Quill 配合 Pico.css 样式被影响的问题
  • vue配置axios
  • 使用Java实现高效用户行为监控系统
  • 二叉树(二)深度遍历和广度遍历
  • Redis的三种持久化方法详解
  • Spring Boot实战:使用策略模式优化商品推荐系统
  • linux用户管理运行级别找回root密码
  • 【Java注解】
  • Docker指令学习1
  • 【Kubernetes】常见面试题汇总(二十七)
  • 【网络安全 | 代码审计】PHP无参数RCE
  • 从图像处理到字符识别:基于STM32与C语言的车牌识别系统实现
  • HarmonyOS开发者基础认证考试试题
  • 基于mockito做单元测试
  • 16【Protues51单片机仿真】智能洗衣机倒计时系统
  • 【如何在 Windows 10 主机上通过 VMware 安装 Windows 11 虚拟机,并共享主机网络】
  • ftp服务的管理及安全优化
  • Google 扩展 Chrome 安全和隐私功能
  • C/C++通过CLion2024进行Linux远程开发保姆级教学
  • io多路复用:epoll水平触发(LT)和边沿触发(ET)的区别和优缺点
  • Linux 自旋锁
  • Spring Mybatis 动态语句 总结
  • 简单生活的快乐
  • (k8s)kubernetes集群基于Containerd部署
  • Flask-SQLAlchemy一对多 一对一 多对多关联