当前位置: 首页 > 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/a/314589.html

相关文章:

  • DAY112代码审计PHP开发框架POP链利用Yii反序列化POP利用链
  • OceanStor Pacific系列 8.1.0 功能架构
  • UDP协议和TCP协议之间有什么具体区别?
  • ubuntu中apt-get的默认安装路径。安装、卸载以及查看的方法总结
  • INQUIRE:一个包含五百万张自然世界图像,涵盖10,000个不同物种的专为专家级文本到图像检索任务设计的新型基准数据集。
  • 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单片机仿真】智能洗衣机倒计时系统