java中的静态方法,java的静态方法在方法名前加

发布时间:2022-12-02

本文目录一览:

1、java新手为什么java类中要有static静态方法? 2、java中什么是静态方法 3、java中的静态方法有什么作用? 4、Java 中 静态方法与非静态方法的区别 5、java中,什么是静态方法? 6、Java中的静态方法有修饰符吗,静态方法属于成员方法吗?

java新手为什么java类中要有static静态方法?

1。静态方法的特点: 直接调用类名+方法名,不需要实例化类对象。
如: Hello.P();
非静态方法则必须实例化一个对象出来,再通过对象调用该方法如: Hello hello=new Hello(参数1~n); hello.P(); 程序被打包成.jar文件后(相当于.exe文件),给外界唯一的接口就是main方法。使用者双击.jar文件,其实就是让虚拟机执行main方法。 main方法不是提供给程序员的,而是提供给虚拟机和使用客户的。 一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例化对象,更不知道实例化对象时需要输入什么参数了。所以只能采用静态方法。

java中什么是静态方法

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

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

作用: 静态属于类内存必须配内存空间,空间直由静态占用内存管理器。由于静态没调用,静态存储空间收所都声明静态,占用量内存空间系统变慢普通,象调用内存并直起配内存调用候,才其配存储空间其没调用,存储空间内存管理;其收释放没用空间提高系统运行速率。 注意事项: 1、声明为static的变量实质上就是全局变量。当声明一个对象时,并不产生static变量的拷贝,而是该类所有的实例变量共用同一个static变量; 2、只分配一块存储空间,所有此类的对象都可以操控此块存储空间,通常一个普通类不允许声明为静态的,只有一个内部类才可以。这个声明为静态的内部类可以直接作为一个普通类来使用; 3、而不需实例一个外部类。静态方法是使用公共内存空间的,就是说所有对象都可以引用,而且在没有创建对象时也可以利用类使用该方法。静态方法可以调用静态方法,但不能调用成员方法。

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

静态方法和实例方法的区别主要体现在两个方面: 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。 下面几个例子展示了这一区别。 1、调用静态方法示例。

//-----------文件名hasStaticMethod.java,程序编号1-----------------
public class hasStaticMethod{
    //定义一个静态方法
    public static void callMe(){
        System.out.println("This is a static method.");
    }
}

下面这个程序使用两种形式来调用静态方法。

//-----------文件名invokeStaticMethod.java,2-----------------
public class invokeStaticMethod{
    public static void main(String args[]){
        hasStaticMethod.callMe(); //不创建对象,直接调用静态方法
        hasStaticMethod oa = new hasStaticMethod(); //创建一个对象
        oa.callMe(); //利用对象来调用静态方法
    }
}

程序3.36两次调用静态方法,都是允许的,程序的输出如下:

This is a static method.
This is a static method.

允许不创建对象而调用静态方法,是Java为了减少程序员调用某些常用方法时的麻烦,而允许程序员按照传统的C语言中使用函数的方式来使用方法。典型的例子是前面某些程序中使用"Math.ramdon()"来获取随机数。 2、静态方法访问成员变量示例。

//-----------文件名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(); //正确,可以调用静态方法
    }
}

本例其实可以概括成一句话:静态方法只能访问静态成员,实例方法可以访问静态和实例成员。之所以不允许静态方法访问实例成员变量,是因为实例成员变量是属于某个对象的,而静态方法在执行时,并不一定存在对象。同样,因为实例方法可以访问实例成员变量,如果允许静态方法调用实例方法,将间接地允许它使用实例成员变量,所以它也不能调用实例方法。基于同样的道理,静态方法中也不能使用关键字this。 main()方法是一个典型的静态方法,它同样遵循一般静态方法的规则,所以它可以由系统在创建对象之前就调用。

java中,什么是静态方法?

首先静态方法是用static来修饰的 静态方法就是可以不通过生成类的实例直接来调用的 举个简单的例子:

class A {
    public static void a() {
        System.out.println("A被调用");
    }
    public void b() {
        System.out.println("B被调用");
    }
}

假设你要调用方法a和方法b 如果调用方法a可以直接A.a();就可以了,不需要先A aa = new A(); aa.a(); 但是调用b则必须A aa = new A(); aa.b(); 还有在继承里面要注意: 如果B继承自A,而且B中和A中都包含相同的函数 如果是实例方法则是被B覆盖掉的
如果是静态方法则是被B隐藏掉的
这一点在上溯机制中可能遇到 最后还有一点静态方法调用的方法一定也要是静态的

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();