首页 > 其他分享 >第二周课程总结:static在修饰方法时的作用是什么?

第二周课程总结:static在修饰方法时的作用是什么?

时间:2022-09-19 17:00:39浏览次数:68  
标签:s917 square double System 第二周 static 修饰 public

  我们知道static是静态修饰符,在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而被static修饰的代码会在编译时就被分配内存,程序退出时才会释放其内存,也就是说,只要程序还在运行内存就一直存在。为什么Java中的函数方法都需要static来修饰才能直接调用呢?

public class s917 {

    public static void main(String[] args) {

    System.out.println("the square of integer 7 is"+square(7));

    System.out.println("\nThe square of double 7.1 is "+square(7.1));

    }

    public  static int square(int x) {

        return x*x;

    }

    public  static double square(double y) {

        return y*y;

    }

}

  以上代码在编译运行时是正确的,但当我们把两个square函数方法的修饰符static删除时,编译器会给我们报错:不能对类型 s917(主类名) 中的非静态方法 square(double)进行静态引用。

于是我上csdn社区搜索了“Java中static的作用”

  从中筛选到了一条这样的信息“在Java程序里面,所有的东西都是对象,而对象的抽象就是类,对于一个类而言,如果要使用他的成员,那么普通情况下必须先实例化对象后,通过对象的引用才能够访问这些成员,但是有种情况例外,就是该成员是用static声明的(在这里所讲排除了类的访问控制)”

于是我想到,主类不也是类的一种吗?我在删除static的基础上做了一些小小的更改,即实例化s917的对象,就有了以下代码:

public class s917 {

    public static void main(String[] args) {

    s917 num=new  s917();

    Scanner sr=new Scanner(System.in);

    Random r=new Random();

    System.out.println("the square of integer 7 is"+num.square(7));

    System.out.println("\nThe square of double 7.1 is "+num.square(7.1));

    }

    public  int square(int x) {

        return x*x;

    }

    public  double square(double y) {

        return y*y;

    }

}

  这回运行的结果与初版的结果完全一致,印证了我的思考。在Java中所有的都是类,我们不能下意识忽略主类也是类的特性,static的修饰让类中的成员可以通过成员名进行直接调用,而省去实例化的繁杂过程。没有static的修饰,那我们在调用类方法和类变量的时候就需要先对对应的类进行实例化,在通过对象来调用所需的代码。

标签:s917,square,double,System,第二周,static,修饰,public
From: https://www.cnblogs.com/xxaxf/p/16708272.html

相关文章

  • 关于static
     static表示“静态”的意思,可以用来修饰成员变量和成员方法。static的主要作用在于创建独立于具体对象的域变量或者方法。被static关键字修饰的方法或者变量不需要依赖于......
  • Java的 static关键字
    通常,在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法   声明为static的方法有以下几条限制: · 它们仅能调用其他的static 方法。 · 它们只......
  • static个人理解
    static解:主要用于内存管理,static关键字的方法不需要new对象就可以直接在同static内进行调用,在其他类中可直接通过类名进行变量的访问。static关键字属于类,不是类的实例。成......
  • Java学习之静态方法static
      测试square方法将static删除后产生的问题会报错  所以main方法是一个静态方法,只能调用静态方法,所以平方数方法必须用static修饰......
  • java第二周
    static声明的成员变量为静态成员变量,其的生命周期和类相同,在整个应用程序执行期间都有效。静态方法不能调用非静态成员。static可以用来修饰类的成员方法、类的成员变量......
  • Java static关键字
    在类中,使用static修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。注意:static......
  • 关键字static
    java中的static关键字static,翻译成中文即为静态的意思,那么也就是说static修饰的是与对象无关的。概括成一句话,static所修饰的成员是公共资源,即不属于任何一个类的成员,sta......
  • static知识点
    在JAVA中并没有全局变量,因此static变量也称作静态变量,静态变量和非静态变量有很大的区别,只要一个成员变量使用了static关键字,那么这个变量就不再属于自己,而是属于整个类。......
  • 静态static关键字
    在类中,用static声明的成员变量为静态成员变量,也称为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。注:static修饰的成员变量和方法,从属于类普通变......
  • 关于java中static说法
    在类中,用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效。static修饰的成员变量和方法从属于类,普通变量和方法......