zoukankan      html  css  js  c++  java
  • java中static的作用

    1、static表示“全局“或者静态的意思。用来修饰成员变量和成员方法,也可以形成静态static代码,被static修饰的成员变量和成员方法独自于该类的任何对象。也就是说,它不依赖类特定的实例,被类的所有实例共享(因此可以用來统计一个类有多少个实例化对象),所以有些属性希望被所有对象共享,则必须将其声明为static属性,被static声明的属性成为全局属性。
    2、只要这个类被加载,Java虚拟Papers 机就能根据类名在运行时数据区的方法区内定找到他们。因此,static对象可以在它的任何对象创建之前访问,无需引用任何对象。
    3、类中定义的静态代码块会优先于构造块先执行,而且不管有多少个对象,静态代码块只执行一次。
    例1:
    class PersonE{
     private String name;
     private int age;
     private static String country = "A城";
     public PersonE(String name,int age){
      this.name = name;
      this.age = age;
     }
     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     }
     public int getAge() {
      return age;
     }
     public void setAge(int age) {
      this.age = age;
     }
     public static String getCountry() {
      return country;
     }
     public static void setCountry(String country) {
      PersonE.country = country;
     }
     public void info(){
      System.out.println("姓名:"+this.getName()+","+"年龄:"+this.getAge()+","+"城市:"+country);
     }
    }
    public class StaticUse {
     public static void main(String[] args){
      PersonE per1 = new PersonE("张三",20);
      PersonE per2 = new PersonE("李四",22);
      System.out.println("---------修改之前--------");
      per1.info();
      per2.info();
      System.out.println("---------修改之後---------");
      PersonE.setCountry("B城");
      per1.info();
      per2.info();
     }

    } 


    例2:
    public class StaticUse{
     private static int s;
     public StaticUse(){
      System.out.println("Creat new Class");
     }
     static{
      System.out.println("static block initialized");
     }
     public static int getS() {
      return s;
     }
     public static void setS(int s) {
      StaticUse.s = s;
     }
     public static void main(String[] args){
      StaticUse classA = new StaticUse();
      StaticUse classB = new StaticUse();
      System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
      classA.setS(10);
      System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
      classB.setS(classB.getS()+10);
      System.out.println("classA.s ="+classA.getS()+";classB.s ="+classB.getS());
     }
    }

    java中static的作用

    class TestDemo
    {
     static
     {
      System.out.println("静态代码块:main");
     }
     public static void main(String[] args)  
     { 
      System.out.println("主函数开始");
      new Test(1);
      new Test();
      System.out.println("主函数结束");  
     }
    }
    class Test
    {
     Test()
     {
      System.out.println("构造函数:空参数的");
     }
     Test(int num)
     {
      System.out.println("构造函数:一个参数的");
     } 
     {
      System.out.println("构造代码块");
     }
     static
     {
      System.out.println("静态代码块:Test类的");
     }
    }

    运行结果:
    静态代码块:main
    主函数开始
    静态代码块:Test类的
    构造代码块
    构造函数:一个参数的
    构造代码块
    构造函数:空参数的 

    主函数结束

  • 相关阅读:
    我的又一个web2.0作品
    AjaxPro使用注意事项与返回数据库中数据时2.0和3.5/4.0的区别(我的心得)
    AjaxPro入门使用方法
    SQLHelper的简单应用,高手绕道,写出最近用的一个类,仅供初学者参考
    Notepad++插件NPPExec编译运行C++、JAVA和Python代码
    在Ubuntu 18.04 LTS上搭建SS并启用BBR
    Linux 目录和文件管理
    chap06
    三层交换机的VLAN划分
    传输协议
  • 原文地址:https://www.cnblogs.com/hackforfun/p/4319010.html
Copyright © 2011-2022 走看看