首页 > 编程语言 >Java——三个关键字:static

Java——三个关键字:static

时间:2024-08-21 23:23:45浏览次数:11  
标签:Java 关键字 代码 Person static 修饰 静态方法 public

static关键字

在Java中,static是一个关键字,用于修饰类的成员(变量、方法等)。静态成员属于类本身而不是类的实例,这意味着每个类都有唯一的静态变量副本,所有该类的对象共享这个副本,而不论创建了多少个对象。

有static修饰的代码和没有static修饰的代码的区别:

有static修饰的代码属于类,没有static修饰的代码属于对象

属于类的东西是被所有对象所共享的

初始static关键字

e88bf2c53540440e8fd0c23748237c00.png

代码:

Test类

public class Test {
    public static void main(String[] args){
        Person p1 = new Person();
        Person p2 = new Person();
        p1.name ="李四”;
        p1.address=“北京”;
        p2.name ="王五”;
        p2.address="上海";
        System.out.println(p1.tostring());
        System.out.println(p2.tostring());
        }
}

Person类

public class Person {
    public String name ="张三";
    public static string address ="保定";
    public static void run(string num){
        System.out.println("跑了====》"+num+"米");
     }
 }

拿上面的图片来举例子:

右侧代码写入了一个Person类,而该类中的adress是static类型的,所以adress和其他的存储变量在存储空间上是有所区别的。

对象的创建:

下图是对象创建的时候,流程图是一个怎样的过程。因为有static修饰的adress是属于类的,所以在方法区中有一个静态常量池,这里面是专门存储静态内容的。随着对象的创建,编译器会分配空间并初始化变量。但因为adress是属于类的,所以无论是实例化对象p1或是p2中的哪一个,他们都是静态常量池中的那个adress,所以上面那个代码最终两个对象的adress都是上海。

dbf470527f1f46d6baa9f575741e2452.png

这里还需要注意的是,代码是按照顺序执行的,如果将p1的打印放在生成p2之前,打印的结果是有所不同的。

 

 

static修饰不同的区别

修饰变量:

成为类变量,被所有该类产生的对象所共享的

修饰方法:

成为静态方法

静态方法和非静态方法

静态方法能够直接被类使用,非静态方法不能被main方法所使用

static修饰的方法才能够调用static方法,而main方法是一种静态方法

修饰代码块:

static修饰的代码块在程序运行之前执行,其目的是优化

 

6694882f8efc4f88be23437b0b2c60de.png

e5565629484f4e4fbb1ce919d2d0c1f7.png

 

 

标签:Java,关键字,代码,Person,static,修饰,静态方法,public
From: https://blog.csdn.net/immnature/article/details/141401415

相关文章

  • Java毕设项目II基于Java新闻稿件管理系统
    目录一、前言二、技术介绍三、系统实现四、论文参考五、核心代码六、源码获取全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末一、前言在信息爆炸的时代,新闻稿件的高效管理与快......
  • 初识JavaScript
    1.什么是JavaScriptJavaScript(JS)是⼀种具有函数优先的轻量级,解释型或即时编译型的编程语⾔。虽然它是作为开发Web⻚⾯的脚本语⾔⽽出名的,但是它也被⽤到了很多⾮浏览器环境中,例如Node.js、ApacheCouchDB和AdobeAcrobat。JavaScript是⼀种基于原型编程、多范式的......
  • 登录注册java版
    packagecom.shujia.day18.logindemo;importjava.io.*;importjava.util.ArrayList;importjava.util.Scanner;/*登录注册java版:思考1:将用户名和密码写在记事本中,编写登录和注册的方法,要求必须先注册才可以登录思考2:修改用户的信息,记事本实现......
  • 登录注册java版:结合mysql数据库
    packagecom.shujia.day18.logindemo;importcom.shujia.day18.utils.MysqlTool;importjava.io.*;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.Statement;importjava.util.ArrayList;importjava.u......
  • 基于JAVA的高校竞赛和考级查询系统论文
    摘   要传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,竞赛信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大用户的需求,因此就应运而生出相应的高校竞赛和考级查询系......
  • java变量定义与数据类型
    变量:在java程序运行过程中,其值可以发送改变的量定义变量的语句格式:数据类型变量名=初始化值;使用变量的注意事项:1、使用基本数据类型的变量,实际上使用的是变量中存储的值2、在同一作用域(同一个大括号)中,变量名不能重复3、变量名是区分大小写的4、java中整数默认是int类型......
  • Java泛型里的Intersection Type
    IntersectionType直译是叫交集类型,语法:&示例写法publicclassMyClass{publicvoidhello(){System.out.println("hello");}}interfaceMyInteface{//...defaultvoidworld(){Syst......
  • 关键字、标识符、注释三剑客
    关键字概述被Java语言赋予特定含义的单词关键字特点组成关键字的字母全部小写关键字注意事项goto和const作为保留字存在,目前并不使用类似IDEA这样的集成工具,针对关键字有特殊的颜色标记,非常直观标识符概述就是给类,接口,方法,变量等起名字时使用的字符序列组成规则......
  • Java毕业设计作品(98):基于thymeleaf前后端分离 体育赛事购票系统设计与实现
      博主介绍:黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。项目配有对应开发文档、开题报告、任务书......
  • JAVA接口
    JAVA接口目录JAVA接口1接口定义2接口与类相似点:3接口与类的区别:4接口特性5抽象类和接口的区别6接口中默认方法7接口中静态方法8接口的多继承接口的声明1接口定义接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类......