含有static的java类_Java基础——static修饰符

static

static在多种计算机语言在常有用到

static在java语言中作为修饰符也有着重要的地位

引入

static修饰属性,可生成静态属性

static修饰方法,可生成静态方法

static修饰代码块,可生成静态代码块

static修饰类,可生成静态类

静态属性

//权限修饰符 static 数据类型 名称;

public static int num;

各个对象数据进行沟通,实现数据的共享

特点

static声明的属性为类属性

创建对象时,不产生static属性的拷贝

类所有实例共享一个static属性

类装载时,只分配一块存储空间,所以类的对象进行操作

静态属性值一旦改变,所有类的对象均共享改变

访问方式

由特点可知:

静态属性不属于任何实例,属于类对象

所以该类的实例都可进行操作静态属性

类名.公有静态属性名

对象名.公有静态属性名

//Demo为含有公有静态属性num的类

Demo d = new Demo();

//第一种方法

Demo.num = 1;

//第二种方法

d.num = 2;

静态方法

//权限修饰符 static 返回值类型 方法名(参数){

// 方法体;

//}

private static int num = 1;

public static int getNum(){

return num;

}

java的三大特性之一:封装

为了体现java的特性,所有类的属性一般设为私有(private),

为了访问私有的静态成员,需要静态方法来实现该功能。

特点

不调用不执行。

static方法独立于任何实例,因此static方法必须被实现,而不能是抽象的(abstract)

访问方式

类名.公有静态方法名(参数);

对象名.公有静态方法名(参数);

//Demo为含有私有静态属性num、公有静态方法getNum的类

Demo d = new Demo();

//第一种方法,用的最多

Demo.getNum();

//第二种方法

d.getNum();

使用规则

在静态方法中,只能直接调用其他static类型的方法

在静态方法中,只能直接访问static类型的属性

在静态方法中,不能使用this和super

静态代码块

静态代码块主要是初始化类中的静态变量。

static{

//代码块

}

特点

仅在类被加载时执行一次。

继承顺序

//父类

public class Parent{

static{

//代码块1

}

Parent(){

//代码2

}

}

//子类

public class Son extends Parent{

static{

//代码块3

}

Son(){

//代码4

}

}

//执行顺序

//代码1

//代码3

//代码2

//代码4

当一个类继承父类,父类和该类中有静态代码块

在该类加载时,代码的执行顺序为:

父类的静态代码块

子类的静态代码块

父类的构造方法

子类的构造方法

静态与非静态顺序

静态属性/静态代码块

非静态属性/非静态代码块

构造方法

静态类

普通类不允许声明为静态,内部类可以

声明为静态的内部类可以直接作为一个普通类来使用,而不需实例化一个外部类。

final

final和static一起使用,修饰成员变量和方法,可作为全局常量

static final 常量,一旦赋值不可修改,可通过类名访问

static final 方法, 不可覆盖,可通过类名访问

博客相关java项目:查看Github项目

对应github项目:Static

导入项目的方法:Java基础——Java如何导入本地项目

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值