java静态修饰符的作用

在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就会一直存在。这样做有什么意义呢? 在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是有种情况例外,就是该成员是用static声明的(在这里所讲排除了类的访问控制),例如: 未声明为static class ClassA{ int b; public void ex1(){ … } } class ClassB{ void ex2{ int i; ClassA a = new ClassA(); i = a.b; //这里通过对象引用访问成员变量b a.ex1; //这里通过对象引用访问成员函数ex1 } } 

声明为static class ClassA{ static int b; static void ex1(){ … } } class ClassB{ void ex2{ int i; i = ClassA.b; //这里通过类名访问成员变量b ClassA.ex1; //这里通过类名访问成员函数ex1 } } 通过以上两种比较,就可以知道static用来修饰类成员的主要作用了,在java类库当中有很多类成员都声明为static,可以让用户不需要实例化对象就可以引用成员,最基本的有Integer.parseInt(),Float.parseFloat()等等用来把对象转换为所需要的基本数据类型。这样的变量和方法我们又叫做类变量和类方法。 接下来讲一下被static修饰后的变量的值的问题,刚才在前面讲过,被static修饰后的成员,在编译时由内存分配一块内存空间,直到程序停止运行才会释放,那么就是说该类的所有对象都会共享这块内存空间,看一下下面这个例子: class TStatic{ static int i; 

public TStatic(){ i = 4; } 

public TStatic(int j){ i = j; } 

public static void main(String args[]){ TStatic t = new TStatic(5); //声明对象引用,并实例化 TStatic tt = new TStatic(); //同上 System.out.println(t.i); System.out.println(tt.i); System.out.println(t.i); } }
时间: 2024-10-12 16:35:26

java静态修饰符的作用的相关文章

java静态修饰符static的使用

class Person { private String name; private int age; /* * 假设每个Person对象的国籍都一样, * 那么每次调用都要赋值就会不合理. * 使用static修饰,国籍优先确立, * 每个对象建立时,都默认赋予了该国籍. */ static String country = "China"; Person (String name,int age) { this.name = name; this.age = age; } pub

java常见修饰符总结

1.访问修饰符:public 对外公开  所有是类都能访问 protected 受保护的 子类及其同一个包中的类可以访问 默认的:没有访问修饰符,只向同一个包中的类公开 private : 私有的 只有类本身可以访问,不对外公开 2.abstract :可以用来修饰类和成员方法 A:用该修饰符修饰的类表示抽象类,抽象类位于继承树的抽象层,该类不能被实例化,即不允许创建抽象类本身的实例 B:用该修饰符修饰的方法表示抽象方法,该方法没有方法体,抽象方法是用来表述系统具有什么功能,但不提供具体的实现.

Java的修饰符

转自:http://blog.csdn.net/manyizilin/article/details/51926230#L42 修饰符: 像其他语言一样,Java可以使用修饰符来修饰类中方法和属性.主要有两类修饰符: 访问修饰符:default, public , protected, private 非访问修饰符:final, abstract, strictfp 修饰符一般使用在一个语句的前端,例: [html] view plain copy public void Pig{ int a 

Java高手真经_编程基础卷——读书笔记(9)——Java类修饰符

Java修饰符 一.简述 访问控制修饰符:public .默认无修饰符.private.protected 其他修饰符:abstract.static.final.native public:意思是公开的,使用范围最广 默认无修饰符,什么也不写:在同一个包内可见 private :私有的 protected:受保护的 abstract:抽象的 static:静态的 final:最终的 native:本地的 sysnchronized:同步 以上是修饰符子字面意思,但其真实的意义也差不多少.下面就

JAVA访问修饰符 构造函数的问题(转)

JAVA访问修饰符 构造函数的问题 java访问修饰符-限定符总结(类比C#) JAVA访问修饰符----------[public | default | protected | private ] public: 完全开发protected: 同包及子类访问default(无): 同包访问private: 只能本类访问 JAVA用于类的修饰符(2个)和限定符(2个):---------------public: 完全开发default(无) : 同包访问 abstract: 指定为抽象类fi

3分钟弄明白JAVA三大修饰符

JAVA的三个修饰:static,final,abstract,在JAVA语言里无处不在,但是它们都能修饰什么组件,修饰组件的含义又有什么限制,总是混淆.所以来总结对比一下. 1 static静态修饰符 static修饰符能够修饰属性,方法,初始代码块.不能修饰局部变量和类. 首先要明白属性分为静态和非静态,静态的称为静态属性,又叫类变量,非静态的称为实例变量. 静态变量和静态方法统称为静态成员. 修饰属性 静态属性又称类变量,它不属于某个对象,是属于类的,是所有对象共同享有. eg:类名.静态

有关static静态修饰符的学习心得

初学java,面对着这个static修饰符,愣是琢磨了两天时间,还在今天琢磨透了,现在将悟到的东西记录下来: 1.static修饰符表示静态修饰符,其所修饰的内容(变量.方法.代码块暂时学到这三种)统称为静态内容(静态变量.静态方法.静态代码块) 2.静态内容是与类相关的内容.解释:静态变量在类加载时就会被分配内存空间,而且只会被分配一次,也就是说静态变量对类内部是共享的,大家都可以去调用访问它,只要在一个调用里改变了它的值,那么所有调用内部的值全部都会被改变.静态方法也是在类加载时就分配了入口

java类修饰符

java的修饰符有:权限修饰符:public.protected.default.private                修饰符:abstract.static.final public   使用对象:最广,类.接口.变量.方法    protected使用对象:变量.方法 注意:不能修饰类(外部类)    default  使用对象:类.接口.变量.方法.(即缺省,什么也不写)    private  使用对象:变量.方法 注意:不能修饰类(外部类) abstract使用对象:类.接口.

java访问修饰符

了解面向对象思想的同学们,都知道"封装"这一基本特征,如何正确运用访问修饰符,恰恰能体现出封装的好坏. java访问修饰符有四个: 1)public:访问权限最高,其修饰的类.类变量.方法所有类都可见. 2)protected:其修饰的类.类变量.方法在同包中(包括同类)可见,不同包的子类可见. 3)default:默认修饰符,即在定义类.类变量或方法时不加任何修饰符.其仅在同包(包括同类)中可见. 4)private:最低访问权限,其修饰的类.类变量和方法仅在本类中可见. ps:pr