java static void_java中static关键字

一、static关键字的介绍

关于static关键字,我们最是在一个类的主方法中见到的,如"public static void main(String[] args)",static关键字在java中,通常用于公共的部分,static关键字可以修饰属性,也可以修饰方法。

二、static关键字修饰属性

下面举一个例子:

class Person{

//姓名

private String name;

//国籍

private String country;

public Person(String name){

this.name = name;

}

public String getName(){

return name;

}

public String getCountry(){

return country;

}

public void setName(String name){

this.name = name;

}

public void setCountry(String country){

this.country = country;

}

public void show(){

System.out.println("姓名:"+name+",国籍:"+country);

}

}

public class StaticDemo{

public static void main(String[] args){

Person person1 = new Person("人员一号");

Person person2 = new Person("人员二号");

Person person3 = new Person("人员三号");

person1.show();

person2.show();

person3.show();

//修改一个对象中的一个非static属性的值

person1.setCountry("中国");

System.out.println("修改一个对象中的一个非static属性的值");

person1.show();

person2.show();

person3.show();

}

}

运行结果:

c6c0e018e07002b8e5fe99a7786a822c.png

通过结果我们可以看出,当修改某个对象中的属性时,其他对象的其对应的值是不会改变的

这个时候我们在country这个属性用static修饰,再次运行

//姓名

private String name;

//国籍

private static String country;

运行结果:

2d9acf549d2ca8e564f08f82d13615e6.png

从结果中我们可以看出,只修改了一个对象中属性的值,其他对象的相对应的这个属性的值也发生了变化,这就是用static修饰属性的结果

下面从对象内存分析一下原因:

5f572e1072f45c12a2956befe6db22e5.png

从图中我们可以看出,每个对象中的country属性变量值都指向静态区"中国"这个变量值,所以当任意一个对象中的这个变量

修改值的时候,其他对象的值都会变 。

三、static关键字修饰方法

用static关键字修饰的方法和属性都可以通过类名直接调用,即不创建对象,使用"类名.属性/方法"的形式调用,但是不推荐直接使用类名.属性直接

给属性赋值,因为这样赋值不够安全,例如年龄这个字段,通过类名.属性可以给年龄赋一个负值,显然年龄是负的不合理。所以以后在类中定义属性

的时候,用private修饰,这样就不能直接通过类名.属性这种方式赋值。但是用static关键字修饰的方法,建议我们通过类名.方法这种方式调用,因为

在方法中,我们可以加一些逻辑,避免不合理的情况出现,在日常开发中,使用类名.方法这种方式调用static关键字修饰的方法这种形式很常见。

class Person{

public static void eat(){

System.out.println("人要吃饭");

}

}

public class StaticMethodDemo{

public static void main(String[] args){

//创建对象并调用方法

Person person = new Person();

person.eat();

System.out.println("===========");

//直接通过类名直接调用

Person.eat();

}

}

运行结果:

c167fc3a51702901cdffbc1bc6d23c49.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值