您的位置:

java静态方法,java静态方法必须使用什么关键字来修饰

本文目录一览:

java中的静态方法有什么作用?

静态方法是属于类的,内存必须为它分配内存空间,这个空间一直由静态方法占用,内存管理器不会由于静态方法没有被调用而将静态方法的存储空间收回,这样如果将所有的方法都声明为静态方法,就会占用大量的内存空间,最后是系统变慢。而普通的成员方法是由对象调用的,内存并不会一直为起分配内存,只有调用的时候才为其分配存储空间,而当其没有被调用时,存储空间就会被内存管理其收回,释放没有用的空间,提高的系统的运行速率!希望对楼主有帮助!

Java中静态方法与非静态方法的区别?

静态方法和实例方法的区别主要体现在两个方面:\x0d\x0a\x0d\x0a在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。\x0d\x0a\x0d\x0a静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。\x0d\x0a\x0d\x0a下面几个例子展示了这一区别。\x0d\x0a\x0d\x0a1、调用静态方法示例。\x0d\x0a\x0d\x0a//-----------文件名hasStaticMethod.java,程序编号1-----------------public class hasStaticMethod{//定义一个静态方法public static void callMe(){System.out.println("This is a static method.");}}\x0d\x0a \x0d\x0a下面这个程序使用两种形式来调用静态方法。\x0d\x0a//-----------文件名invokeStaticMethod.java,2-----------------public class invokeStaticMethod{public static void main(String args[]){hasStaticMethod.callMe(); //不创建对象,直接调用静态方法 hasStaticMethod oa = new hasStaticMethod(); //创建一个对象oa.callMe(); //利用对象来调用静态方法}} \x0d\x0a程序3.36两次调用静态方法,都是允许的,程序的输出如下:\x0d\x0aThis is a static method.This is a static method. \x0d\x0a\x0d\x0a允许不创建对象而调用静态方法,是Java为了减少程序员调用某些常用方法时的麻烦,而允许程序员按照传统的C语言中使用函数的方式来使用方法。典型的例子是前面某些程序中使用"Math.ramdon()"来获取随机数。\x0d\x0a\x0d\x0a2、静态方法访问成员变量示例。\x0d\x0a\x0d\x0a//-----------文件名accessMember.java,程序编号3.37-----------------class accessMember{private static int sa; //定义一个静态成员变量private int ia; //定义一个实例成员变量//下面定义一个静态方法static void statMethod(){int i = 0; //正确,可以有自己的局部变量sa = 10; //正确,静态方法可以使用静态变量otherStat(); //正确,可以调用静态方法ia = 20; //错误,不能使用实例变量insMethod(); //错误,不能调用实例方法}static void otherStat(){} //下面定义一个实例方法 void insMethod(){int i = 0; //正确,可以有自己的局部变量sa = 15; //正确,可以使用静态变量ia = 30; //正确,可以使用实例变量statMethod(); //正确,可以调用静态方法}} \x0d\x0a\x0d\x0a本例其实可以概括成一句话:静态方法只能访问静态成员,实例方法可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用实例方法,将间接地允许它使用实例成员变量,所以它也不能调用实例方法。基于同样的道理,静态方法中也不能使用关键字this。\x0d\x0a\x0d\x0amain()方法是一个典型的静态方法,它同样遵循一般静态方法的规则,所以它可以由系统在创建对象之前就调用。

北大青鸟设计培训:JAVA构造方法静态方法?

构造方法 作用:对对象的属性(成员变量)进行初始化 写法: 1.构造方法的方法名与类名完全相同 2.没有返回值类型(连void都不写) 3.没有返回值注意事项: 1.没写构造方法 系统则会提供一个无参的构造方法 2.写了有参的构造方法 系统不会提供无参的构造方法 所以在写有参的构造方法时最好把无参的也写上内存表现步骤 1.类加载到方法区 2.加载到方法区的同时。

IT培训认为静态变量被加载到方法区的静态区 3.main入栈 4.在堆内存中创建对象 5.把地址赋值给main函数的对象保存 6.main函数出栈 7.程序结束静态变量与成员变量的区别: 1.所属不同: 成员变量:属于对象的又叫对象变量(实例变量) 静态变量:属于类又叫类变量2.内存中的存储位置: 成员变量:存储在堆内存 静态变量:存处在方法区的静态区3.加载到内存中的时机(生命周期的不同): 成员变量:随着对象的创建而创建 静态变量:随着类的加载而存在

java中什么是静态方法

若类的方法前加了static关键字,则该方法称为静态方法,反之为实例方法。静态方法为类所有,可以通过对象来使用,也可以通过类来使用。但一般提倡通过类名来使用,因为静态方法只要定义了类,不必建立类的实例就可使用。静态方法只能调用静态变量。

Java中的静态方法有修饰符吗,静态方法属于成员方法吗?

在Java中,静态方法是用static修饰的,同时可以选择加上public或protected或private访问修饰符,如果不加也是默认具有包访问性。 静态方法是属于类的静态成员方法,通常是通过类来调用,通过类的实例也可以调用。

如:

class A

{

public static void f()

{

System.out.println("类A的静态方法f");

}

}

则以下方法都可以调用静态方法f:

1、通过类来调用

A.f();

2、通过类A的引用变量来调用

A obj;

obj.f();

java怎么在静态方法中使用动态方法?

1.静态的方法在整个应用程序其间存储在内存中,速度快,但占用内存. \x0d\x0a class A\x0d\x0a {\x0d\x0a public static string b()\x0d\x0a {\x0d\x0a return "Hello";\x0d\x0a }\x0d\x0a\x0d\x0a } \x0d\x0a\x0d\x0a用法: A.b(); //调用方便 \x0d\x0a静态方法可以通过类名直接调用,\x0d\x0a2.动态的方法在先声明类实例才能调用类中的方法. \x0d\x0a\x0d\x0a class A\x0d\x0a {\x0d\x0a public string b()\x0d\x0a {\x0d\x0a return "Hello";\x0d\x0a }\x0d\x0a } \x0d\x0a用法: A a = new a(); a.b(); \x0d\x0a3.一般使用频繁的方法用静态方法,用的少的方法用动态的。静态的速度快,占内存。动态的速度相对慢些,但调用完后,立即释放类,可以节省内存,可以根据自己的需要选择是用动态方法还是静态方法。\x0d\x0a4.静态方法主要的问题就是数据同步的问题。如果你的静态方法的类中不保存私有变量那么什么问题都不会有的。最好是包要操作的数据全部以参数的方式传到方法中去\x0d\x0a5. 静态方法是类方法,调用时不需要创建类实例。\x0d\x0a6. 静态方法是静态绑定到子类,不是被继承。