java static作用体_Java中关键字static解析

Java关键字是电脑语言里事先定义的,具有特别意义的标识符,有时也会叫保留字,还有特别意义的变量。Java的关键字和Java 的编译器有特殊的意义,他们用来表示一种数据模型,或者表示程序的结构等,关键字不可用作变量名,方法名,类名,包名和参数。

static:表明具有静态属性

static可翻译为“静态的”,在了解static的作用之前我们需要知道在写代码的时候static可以放在哪些位置,或者是说可以修饰哪些内容。首先,我们在类体当中声明变量的时候,有static出现的情况;其次,我们在定义方法的时候也有static出现的情况。

对于变量来说,什么时候定义为实例变量?什么时候定义为静态变量?

首先,方法体当中的变量叫做局部变量,由于局部变量不可以加static修饰符进行修饰,故这里不考虑局部变量。对于类体当中的变量来说,统称为成员变量,没有static修饰的叫做实例变量,没有static修饰的叫做静态变量。

对于这三种变量在JVM内存当中的分布情况来说,局部变量存储在栈区,实例变量存储在堆区,静态变量存储在方法区域,对于JVM的内存分布情况问题可以参考我之前的博客。

对于一个类来说,类 = 属性 + 方法。对于不同的对象来说,可能有不同的属性,那么对于这些直接与不同对象联系的属性来说,必须要设置为实例变量,使用不同的对象来进行访问以便体现出不同对象的不同属性。对于不同对象如果说有统一的属性值,那么可以考虑将该属性变量设置为静态变量。

public class StaticTest {

public static void main(String[] args) {

System.out.println(User.sex);//直接使用类名访问静态变量

User user = new User();//访问实例变量之前必须要先new一个对象出来

System.out.println(user.id);

System.out.println(user.sex);//对象也可以访问静态变量

}

}

class User{

//实例变量

int id;

//静态变量

static String sex;

}

小结:

1.对象既可以访问实例变量也可以访问静态变量,但是对于静态变量来说,一般建议直接使用类名进行访问。

2.对于静态变量来说,空引用访问静态变量没有空指针异常错误(NullPointerException)。

对于方法来说,什么时候定义为实例方法?什么时候定义为静态方法?

方法的定义格式:

[权限修饰符] 返回值类型 方法名(形式参数列表){

}

Tips:由于构造方法不能用static修饰,故这里不讨论构造方法。

在定义格式中不加static修饰的话就是实例方法,加入static修饰的话就是静态方法。

通常来说,一个方法一般描述了一个行为,如果这个行为必须要由对象来触发,那么这个方法就一定要定义为实例方法。如果一个方法的方法体当中直接访问了实例变量,那么这个方法一定是实例方法,典型的比如说get()方法和set()方法。

public class StaticTest {

private int id;

//访问了成员变量,不能加static修饰,此为实例方法

public int getId() {

return id;

}

//访问了成员变量,不能加static修饰,此为实例方法

public void setId(int id) {

Home | This.ID = id;

}

}

如果说一个方法和对象没有直接的联系,那么可以考虑将这个方法定义为静态方法,典型的就是我们所熟知的main()方法。同时,对于静态方法来说,可以直接用类名来调用,Java工具类当中的一些方法采用的大都是static修饰的静态方法,可以直接用类名来调用,方便了用户的操作。

public class StaticTest {

public static void main(String[] args) {

User.fun();//可以使用类名直接调用静态方法

User user = new User();//调用实例方法之前必须先new一个对象出来

int id = user.getId();

System.out.println(id);

//user = null;//设置为空引用

user.fun();//也可以使用对象来调用静态方法

}

}

class User{

//实例变量

private int id;

//实例方法

public int getId() {

return id;

}

//静态方法

public static void fun() {

System.out.println("测试");

}

}

小结:

1.对于方法体当中访问了实例变量的方法来说,必须定义为实例方法。如果说静态方法的方法体当中访问了成员变量,那么这个变量一定是静态变量。

2.对于静态方法来说,可以使用类名直接访问,也可以使用对象来访问,建议直接使用类名访问。

3.对于静态方法来说,空引用访问静态方法没有空指针异常错误 (NullPointerException)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本火锅店点餐系统采用Java语言和Vue技术,框架采用SSM,搭配Mysql数据库,运行在Idea里,采用小程序模式。本火锅店点餐系统提供管理员、用户两种角色的服务。总的功能包括菜品的查询、菜品的购买、餐桌预定和订单管理。本系统可以帮助管理员更新菜品信息和管理订单信息,帮助用户实现在线的点餐方式,并可以实现餐桌预定。本系统采用成熟技术开发可以完成点餐管理的相关工作。 本系统的功能围绕用户、管理员两种权限设计。根据不同权限的不同需求设计出更符合用户要求的功能。本系统管理员主要负责审核管理用户,发布分享新的菜品,审核用户的订餐信息和餐桌预定信息等,用户可以对需要的菜品进行购买、预定餐桌等。用户可以管理个人资料、查询菜品、在线点餐和预定餐桌、管理订单等,用户的个人资料是由管理员添加用户资料时产生,用户的订单内容由用户在购买菜品时产生,用户预定信息由用户在预定餐桌操作时产生。 本系统的功能设计为管理员、用户两部分。管理员为菜品管理、菜品分类管理、用户管理、订单管理等,用户的功能为查询菜品,在线点餐、预定餐桌、管理个人信息等。 管理员负责用户信息的删除和管理,用户的姓名和手机号都可以由管理员在此功能里看到。管理员可以对菜品的信息进行管理、审核。本功能可以实现菜品的定时更新和审核管理。本功能包括查询餐桌,也可以发布新的餐桌信息。管理员可以查询已预定的餐桌,并进行审核。管理员可以管理公告和系统的轮播图,可以安排活动。管理员可以对个人的资料进行修改和管理,管理员还可以在本功能里修改密码。管理员可以查询用户的订单,并完成菜品的安排。 当用户登录进系统后可以修改自己的资料,可以使自己信息的保持正确性。还可以修改密码。用户可以浏览所有的菜品,可以查看详细的菜品内容,也可以进行菜品的点餐。在本功能里用户可以进行点餐。用户可以浏览没有预定出去的餐桌,选择合适的餐桌可以进行预定。用户可以管理购物车里的菜品。用户可以管理自己的订单,在订单管理界面里也可以进行查询操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值