java面向对象--------static修饰符

  • static修饰符:

static是静态的意思,是java中的修饰符。用于修饰类的变量、方法等,称为类的静态成员。在应用程序中,第一次加载类时,初始化静态变量,静态变量会一直到应用程序结束才会被系统销毁。静态成员不依赖类的某一个实例,因此调用静态成员时,可以使用类名直接调用。

  1. 静态变量

经过static修饰的变量,称为静态变量,也叫类变量,静态变量不依赖于任何对象存在,当类第一次加载(任何一个对象的声明,首先都要加载类),该类的静态变量就会被分配独立的内存,直到应用程序结束才被回收,因此静态变量不依赖与任何对象而存在。

静态变量和成员变量的区别:

  1. 生命周期不同:

静态变量:在类第一次加载的时候就会创建,等整个程序执行结束的时候被销毁。

成员变量:在创建对象的时候被创建,当该对象使用完成之后就被销毁。

     2. 调用方式不同:

静态变量:类名.变量名;

成员变量对象名.变量名;

例如:

 Test test=new Test();

test.num1=7;//成员变量的调用

Test.num=9;//静态变量的调用

总结:

 静态变量又叫做类变量,不依赖任何对象存在,成员变量依赖于对象存在的,所以在调用的时候首先要进行实例化对象,然后通过对象去调用。

     在整个程序当中,一个静态变量在应用程序中只存在一份。

例如:

package com.bxit;

/**

 * static:静态的

 */

public class Test {

/**

 * 静态修饰符:static

 * static可以修饰方法,属性,也可以修饰类

 *

 * 使用static修饰的变量,在类第一次加载的时候就会创建。

 * 在整个程序执行过程当中,静态变量永远只存在一份。

 * 静态变量是脱离对象存在的,也就是说静态变量不会依赖于任何的对象

 *

 * 静态变量的生命周期:

 * 在类第一次加载的时候就会创建,等整个程序执行结束的时候被销毁。

 * 成员变量的生命周期:

 * 在创建对象的时候被创建,当该对象使用完成之后就被销毁。

 * 静态变量调用的方式:

 * 类名.变量名;

 * 成员变量调用方式:

 * 对象名.变量名;

 * 总结:

 * 静态变量又叫做类变量,不依赖任何对象存在,成员变量依赖于对象存在的,所以在调用的时候

 * 首先要进行实例化对象,然后通过对象去调用。

 */

//类变量:在类第一次加载的时候被创建,在整个程序中只有一份。

public static int num=0;

    //成员变量:在进行创建对象的时候被创建,在整个程序执行过程中可以有多份。

public int num1=0;

public void add(){

num++;

num1++;

System.out.println("静态num="+num+"--------成员num1="+num1);

}

public static void main(String[] args) {

Test test=new Test();

//num=0   num1=0

test.add();//num=1   num1=1

Test test1=new Test();

//num=1    num1=0

test1.add();

//num=2   num1=1

Test test2=new Test();

//num=2  num1=0

test2.add();

//num=3  num1=1

}

}

执行结果:

 

说明:上述程序中,num属于静态变量,他在程序中只存在一份,所以每次都num的修改都是在原来的基础上进行的,但是num1属于成员变量,每次使用的时候都是对不同的对象的成员变量进行修改,所以每次都是一个新的变量。

  1. 静态方法:

静态方法就是在方法的声明前加上static修饰符,他和静态变量一样,也是不依赖与任何对象存在。

静态方法和成员方法调用方式对比:

静态方法调用方式:

    类名.方法名([参数列表]);

非静态方法调用方式:

    对象名.方法名([参数列表]);

例如:

Test1.add();//静态方法的调用

注意:1.在静态的方法中不可以调用非静态的属性和方法,如果非要调用必须先创建对象。

  2.在成员方法中可以调用静态的变量和方法。

 成员方法和静态方法对比表

比较内容

静态方法

成员方法

调用

类名.方法名(参数)

对象名.方法名(参数)

调用普通方法

不能直接调用

同一个类中的可以直接调用

调用静态方法

类名.方法名(参数)

类名.方法名(参数)

访问静态变量

类名.静态变量名

类名.静态变量名

访问成员变量

不能直接访问

同一个类中可以直接访问

使用this关键字

不能使用

可以使用

  1. 静态块:

  可以通过static修饰代码块,叫做静态块。写在类里面,方法的外面。

例如:

static{

//name="aa";

name1="hello";//静态变量

System.out.println("静态块");

add();//讲台方法

}

类在第一次加载的时候就会去执行静态块中的代码,在静态块中我们可以进行一些初始化的操作。静态块只能去访问类中静态的变量和方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值