当前位置:   article > 正文

[Java]静态方法

静态方法
  1. class Person {
  2. public static int v = 10;
  3. public static void showV () {
  4. System.out.println("V = "+v);
  5. }
  6. public static void sell () {
  7. v--;
  8. }
  9. private String name;
  10. private String gender;
  11. private int age;
  12. public int getAge() {
  13. return age;
  14. }
  15. public Person () {
  16. }
  17. public Person (String name, String gender, int age) {
  18. this.name = name;
  19. this.gender = gender;
  20. this.age = age;
  21. }
  22. public void setAge(int age) {
  23. this.age = age;
  24. }
  25. public String getName() {
  26. return name;
  27. }
  28. public void setName(String name) {
  29. this.name = name;
  30. }
  31. public String getGender() {
  32. return gender;
  33. }
  34. public void setGender(String gender) {
  35. this.gender = gender;
  36. }
  37. public void say () {
  38. System.out.println(getName()+" is saying sth");
  39. }
  40. }
  41. public class T2 {
  42. public final static void main(String[] args) {
  43. // 使用类名直接调用静态方法
  44. Person.showV();
  45. Person.sell();
  46. Person.showV();
  47. // 使用匿名对象,在堆中开辟空间,只使用一次
  48. new Person("xiaohong", "male", 77).say();
  49. Person xiaoming = new Person();
  50. Person.sell();
  51. // 使用对象名调用静态方法,不报错,但是有警告
  52. xiaoming.showV();
  53. xiaoming.setName("xiaoming");
  54. xiaoming.setAge(19);
  55. xiaoming.setGender("male");
  56. xiaoming.say();
  57. }
  58. }

运行结果:

使用静态方法的时候,只能访问其他静态方法和静态的变量

解释:

静态方法不能访问非静态的数据和方法,因为这两项都依赖于具体的实例,而静态方法在对象实例化之前就已经被JVM装载,而类中的实例变量和实例对象必须在对象开辟堆内存之后才能使用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/903531
推荐阅读
相关标签
  

闽ICP备14008679号