Java中关键字static的说明及使用

Java中的static

通常来说,当我们创建一个类的时候,就是在描述那个类的属性和行为。我们可以new一个对象才能对属性和方法进行调用,执行new来创建对象,内存空间才会分配存储空间,其方法才供外界调用。
但是有两种情况上面无法处理:1.只想为特定区域分配空间,不去考虑对象的创建。2.一些属性和方法不和对象关联,即使没有对象,也能调用这个方法。
通过static可以满足这两方面要求。static声明的结构总是随着类的加载而加载,且在内存的方法区的静态域中是单独一份的存在,即多个对象的调用或改动static属性的话,其实是同一个内容。

一、关键字static

1.在Java类中,可用static修饰属性、方法、代码块、内部类

2.被修饰后的成员具备以下特点:

随着类的加载而加载
优先于对象存在
修饰的成员,被所有对象所共享
访问权限允许时,可不创建对象,直接被类调用

二、类变量

由该类的所有实例共享

public class Person {
private int id;
public static int total = 0;
public Person() {
total++;
id = total;
}
}

三、类方法

没有对象的实例时,可以用 类名. 方法名()的形式访问由static修饰的类方法。
在static 方法内部只能访问类的 的static 修饰的属性或方法, 不能访问类的非 非static 的结构。

class Person {
private int id;
private static int total = 0;
public static int getTotalPerson() {
//id++; //非法
return total;}
public Person() {
total++;
id = total;
}}
public class PersonTest {
public static void main(String[] args) {
System.out.println("Number of total is " + Person.getTotalPerson());
//没有创建对象也可以访问静态方法
Person p1 = new Person();
System.out.println( "Number of total is "+ Person.getTotalPerson());
}}

四、静态代码块

static 代码块化可以对类的属性、类的声明进行初始化操作,不可以对非静态的属性初始化。
静态代码块的执行要先于非静态代码块。

  class Person {
		public static int total;
		static {
		total = 100;// 为total 赋初值
		}
		}

static应用-单例模式

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类 只能存在一个对象实例

class Bank{
	private static Bank b1 = new Bank();
	private Bank() {
	}
	public static Bank instance() {
		return b1;
	}
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值