zoukankan      html  css  js  c++  java
  • 0基础学java_static关键字

    static关键字

    在java中可以使用static关键字声明属性和方法。如果现在想一个属性被所有的对象所共同拥有,则可以将其声明成static类型,声明static类型的属性或方法之后属性的方法称为类方法,可以由类名直接调用。

    static可以声明全局属性

     1 package company.feimao.package1;
     2 class Person{
     3     String name;
     4     int age;
     5     static String city = "上海";
     6     public Person(String n , int a) {
     7         this.name = n;
     8         this.age = a;
     9     }
    10     public void info(){
    11         System.out.println("姓名 :" + this.name + ", 年龄 :" + this.age + ", 城市 :" + this.city );
    12         }
    13 }
    14 public class StaticDemo01 {
    15     public static void main(String args[]){
    16         Person p1 = new Person("肥猫" , 28);
    17         Person p2 = new Person("猪宝宝" , 28);
    18         Person p3= new Person("淘淘" , 2);
    19         System.out.println("---------------修改之前----------");
    20         p1.info();
    21         p2.info();
    22         p3.info();
    23         Person.city = "卢湾区";
    24         System.out.println("---------------修改之后——---------");
    25         p1.info();
    26         p2.info();
    27         p3.info();
    28     }
    29 
    30 }

    每一个对象都拥有各自的堆栈空间,堆内存空间中保存每个对象的各自属性,但是所有的static属性是保存在全局数据区之中,所有的对象指向全局数据区中的一个内容,所以当一个内容被修改之后,所有对象的内容将全局变化。

    java中有多少内存区域?

    1.栈内存可以保存对象的名称(保存访问的堆内存地址)

    2.堆内存,保存每个对象的具体属性

    3.全局数据区,保存static类型的属性

    4.全局代码区,保存所有方法的属性

    一般调用static属性的时候最好使用类名称直接调用,采用“类名称.属性”的形式调用。

  • 相关阅读:
    Codeforces 1230E
    扫描线求面积和周长 (模板,线段树)
    POJ2528
    线段树 (模板)
    Codeforces 1332B
    Codeforces 1279D
    Codeforces 1281B
    Codeforces 1288D
    8I
    8F
  • 原文地址:https://www.cnblogs.com/feimaoyuzhubaobao/p/9795730.html
Copyright © 2011-2022 走看看