Java static关键字

简介: `static`关键字用于修饰成员变量和方法,表示它们属于类而非对象。静态成员变量在内存中只有一份,可被所有对象共享,建议通过类名访问。实例变量每个对象独有,需通过对象访问。静态成员方法与类关联,可直接调用,不依赖对象,而实例方法需要对象来调用并能访问实例成员。在方法中,类方法不能直接访问实例成员,但实例方法可以访问类和实例成员。记得在适当时候使用`this`关键字。

@[toc]

1、static修饰成员变量

1.1 静态成员变量

1、有static修饰,属于类,与类一起加载,内存中只有一份,可以被共享访问
2、什么时候用呢?如果信息要被共享,只需要一份就用,比如:系统在线人数。
3、建议用类名访问:类名.静态成员变量 Student.name="张三";
4、注意:同一个类中,访问静态成员可以省略类名不写

Student 对象

package com.haima.d1_static;

public class Student {
   
    static String name;  //类变量
}

Test 类中访问

Student.name="张三";

//第二种
 Student s1=new Student();
 s1.name="李四
1.2 实例成员变量

1、无static修饰,属于对象,每个对象中都存在一份实例成员变量。比如:name age
2、什么时候用呢?比如:name age,每个对象中都有这些信息,而且信息还不同时,定义成实例成员变量。
3、只能用:对象名.实例成员变量。

Student 对象

package com.haima.d1_static;

public class Student {
   
    int age;  //实例变量(对象)
}

Test 类中访问

 Student s1=new Student();
 s1.age=10;

2、static修饰成员方法

2.1 静态成员方法

1、有static修饰,属于类,与类一起加载,可以被共享访问
2、建议用类名访问:类名.静态方法
3、注意:同一个类中,访问静态成员可以省略类名不写。

Student 对象

package com.haima.d1_static;

public class Student {
   
     //类方法
    public static void printHello(){
   
        System.out.println("你好1");
        Student.schoolName="哈哈";


    }
}

Test 类中访问

 //访问类方法
 Student.printHello();
2.2 实例成员方法

1、无static修饰,属于对象,必须用对象触发访问
2、什么时候用呢?如果这个方法属于对象,而且要直接访问对象的实例成员,则申明成实例方法。
3、注意:只能用:对象名.实例成员方法

Student 对象

package com.haima.d1_static;

public class Student {
   
     //实例方法
    public void print(){
   
        System.out.println(this);
        System.out.println("你好2");

    }

}

Test 类中访问

//访问实例方法
Student s1=new Student();  //new一个对象
s1.print();

==static 注意事项==

1、类方法中可以直接访问类的成员,不可以直接访问成员变量
2、实例方法中既可以访问类成员,也可以访问实例成员
3、实例方法中可以出现this关键字,但是类方法中不可以

3、🎉写在最后

🍻伙伴们,如果你已经看到了这里,觉得这篇文章有帮助到你的话不妨点赞👍或 Star ✨支持一下哦!手动码字,如有错误,欢迎在评论区指正💬~

你的支持就是我更新的最大动力💪~

CSDN博客园

目录
相关文章
|
15小时前
|
Java 数据安全/隐私保护
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
4 0
|
15小时前
|
存储 Java
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
Java基础手册(标识符 关键字 字面值 变量 数据类型 字符编码 运算符 控制语句 方法及方法重载和递归 面向对象与面向过程)
5 0
|
1天前
|
缓存 Java 编译器
必知的技术知识:Java并发编程:volatile关键字解析
必知的技术知识:Java并发编程:volatile关键字解析
|
1天前
|
缓存 安全 Java
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
《volatile使用与学习总结:》多层面分析学习java关键字--volatile
7 0
|
1天前
|
安全 Java 开发者
Java并发编程之深入理解synchronized关键字
【6月更文挑战第26天】在Java并发编程的世界中,synchronized关键字扮演着守护者的角色,它保护着共享资源的完整性。本文将深入探讨synchronized关键字的内部机制、使用方法及其对性能的影响,帮助开发者更好地利用这一工具来构建线程安全的应用。
|
3天前
|
Java
java之final关键字
java之final关键字
8 1
|
4天前
|
Java
Java的static关键字详解
Java的static关键字详解
|
4天前
|
Java
synchronized关键字在Java中为多线程编程提供了一种简便的方式来管理并发,防止数据竞争和死锁等问题
Java的`synchronized`关键字确保多线程环境中的数据一致性,通过锁定代码段或方法防止并发冲突。它可修饰方法(整个方法为临界区)或代码块(指定对象锁)。例如,同步方法只允许一个线程执行,同步代码块则更灵活,可锁定特定对象。使用时需谨慎,以避免性能影响和死锁。
10 0
|
4天前
|
Java
Java中的`synchronized`关键字是一个用于并发控制的关键字,它提供了一种简单的加锁机制来确保多线程环境下的数据一致性。
【6月更文挑战第24天】Java的`synchronized`关键字确保多线程数据一致性,通过锁定代码块或方法防止并发冲突。同步方法整个方法体为临界区,同步代码块则锁定特定对象。示例展示了如何在`Counter`类中使用`synchronized`保证原子操作和可见性,同时指出过度使用可能影响性能。
19 4
|
8天前
|
安全 Java 数据安全/隐私保护
Java基础之访问控制关键字
Java访问控制关键字包括public、protected、default和private。public成员可从任何地方访问,protected允许同包和子类访问,default仅限同包,而private只限类内部。选择修饰符应考虑数据封装和安全,优先使用最严格的访问级别。
8 0