static(一)
2023-12-13 19:58:20
static
- 叫静态,可以修饰成员变量、成员方法。
static修饰成员变量
成员变量按有无static修饰,分为两种:
- 类变量:有static修饰,属于类,在计算机里只有一份,会被类的全部对象共享
- 实例变量(对象的变量):无static修饰,属于每个对象的
static修饰成员变量的应用场景
类变量的应用场景
- 在开发中,如果某个数据只需要一份,且希望能够被共享(访问、修改),则该数据可以定义成类变量来记住。
案例导学:
- 系统启动后,要求用户类可以记住自己创建了多少个用户对象。
User类?
public class User {
//类变量
public static int number;
public User(){
//User.number++;
//注意:在同一个类中,访问自己类的类变量,才可以省略类名不写
number++;
}
}
Test类
public class Test {
public static void main(String[] args) {
//目标:通过案例理解类变量的应用场景
User u1 = new User();
User u2 = new User();
User u3 = new User();
System.out.println(User.number);
}
}
运行结果为:3
static修饰成员方法
成员方法的分类
- 类方法:有static修饰的成员方法,属于类
- 成员方法:无static修饰的成员方法,属于对象
static修饰成员方法的应用场景
类方法的场景应用场景
- 类方法最常见的应用场景是做工具类
工具类是什么?
- 工具类中的方法都是一些类方法,每个类方法都是用来完成一个功能的,工具类是给开发人员共同使用的。
使用类方法来设计工具类有啥好处?
- 提高了代码的复用性;调用方便,提高了开发效率
案例
当一个程序下登录需要一个4位验证码,注册需要6位验证码时,就可以用工具类来解决
LoginDemo类
public class LoginDemo {
public static void main(String[] args) {
System.out.println(MyUtil.creatCode(4));
}
}
RegistDemo类
public class RegistDemo {
public static void main(String[] args) {
System.out.println(MyUtil.creatCode(6));
}
}
MyUtil类
import java.util.Random;
public class MyUtil {
public static String creatCode(int number){
String code = "";
String date = "abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ123456789";
Random ra = new Random();
for (int i = 0; i < number; i++) {
int index = ra.nextInt(date.length());
code += date.charAt(index);
}
return code;
}
}
为什么工具类中的方法要用类方法,而不是实例方法?
- 实例方法需要创建对象来调用,此时对象只是为了调用方法,对象占内存,这样会浪费内存
- 类方法,直接用类名调用即可,调用方法,也能节省内存
- 工具类没有创建对象的需求,建议将工具类的构造器进行私有
文章来源:https://blog.csdn.net/SU_mu147/article/details/134971926
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!