首页 > 其他分享 >static个人理解

static个人理解

时间:2022-09-18 23:34:16浏览次数:77  
标签:变量 个人 静态 理解 static new 方法 public

static解:
主要用于内存管理,static关键字的方法不需要new对象就可以直接在同static内进行调用,在其他类中可直
接通过类名进行变量的访问。
static关键字属于类,不是类的实例。

成员分为两种:静态变量与实例变量。
static修饰后只会被分配一次内存,加载类的时候就会预先完成内存分配
静态变量可以被类的所有实例共享,静态变量可以增加实例之间的交互性
相对的 静态方法不能调用非静态的方法与变量,并且静态不能用this与super

静态变量适合全局变量的定义:比如一个boolean flag布尔变量可以多次使用,不用每次定义并且节省了内存

静态代码块:
static{}修饰的代码块
类似于方法,不可以放在方法体内
可以放在类的任何地方,类中可以存在多个
静态代码块只会初始化一次,并且在类内按次序进行,而非静态代码块会在new对象时都会触发

1、静态内部类,跟静态方法一样,只能访问静态成员变量和方法,不能访问非静态方法和属性。
2、普通内部类,可以访问任意外部类的成员变量和方法。
3、静态内部类,可以声明普通成员变量和方法,而普通内部类不能声明static成员变量和方法。
4、静态内部类,可以单独初始化。



子方法static去掉的报错(求平方数的静方法)的原因,例子
原因:得先new对象,不new对象不能直接调用
原代码

public class SquareInt {

    public static void main(String[] args) {
        int result;

        for (int x = 1; x <= 10; x++) {
            result = square(x);
            // Math库中也提供了求平方数的方法
            // result=(int)Math.pow(x,2);
            System.out.println("The square of " + x + " is " + result + "\n");
        }
    }

    // 自定义求平方数的静态方法
    public static int square(int y) {
        return y * y;
    }
}

 


将静态方法修改后
public class SquareInt {

    public static void main(String[] args) {
        SquareInt Sq=new SquareInt();
        //先创建对象
        int result;

        for (int x = 1; x <= 10; x++) {
            result = Sq.square(x);
            // Math库中也提供了求平方数的方法
            // result=(int)Math.pow(x,2);
            System.out.println("The square of " + x + " is " + result + "\n");
        }
    }

    // 自定义求平方数的静态方法
    public int square(int y) {
        return y * y;
    }
}

 





标签:变量,个人,静态,理解,static,new,方法,public
From: https://www.cnblogs.com/kun1790051360/p/16706260.html

相关文章

  • 个人职业规划
    我的性格并不是那种外向类型,很多东西我都愿意自己一个人体会与经历,有时候会把自己排除在集体之外。我的爱好是喜欢画插画,也是自己的副业首先,把学习放第一位,在之后的大学生......
  • Java学习之静态方法static
      测试square方法将static删除后产生的问题会报错  所以main方法是一个静态方法,只能调用静态方法,所以平方数方法必须用static修饰......
  • GFM语法个人简介示例
    个人简介基本信息姓名:曾强年龄:20岁职业:攻城狮爱好:看电影、听音乐、喝咖啡抽烟、喝酒、烫头(头发没了)人生格言:机会总是留给有准备的人。时时居先,方可快......
  • 二分的理解
    今天在写一道二分的题的时候,使用二分后得到的结果并不是想要的。于是怀疑起自己是否打错板子了,后面发现并没有,但也让我明白了哪里不足。二分有两种通用的板子第一种 int......
  • 对软件工程的理解
    定义软件工程是一门研究如何高效编写和维护软件方法的学科。随着计算机计算能力上升,越来越多学科的发展离不开计算机软件的辅助,程序员需要编写各种软件运用于不同学科,但由......
  • Java static关键字
    在类中,使用static修饰符修饰的属性(成员变量)称为静态变量,也可以称为类变量,常量称为静态常量,方法称为静态方法或类方法,它们统称为静态成员,归整个类所有。注意:static......
  • 深入理解C++的new和delete
    一、C++中的动态内存管理方式C语言中的动态管理方式是用malloc、free函数,它们在C++仍然可以继续使用,但是由于在部分地方略显无能为力,且使用起来比较麻烦,所以C++提出了自己......
  • 关键字static
    java中的static关键字static,翻译成中文即为静态的意思,那么也就是说static修饰的是与对象无关的。概括成一句话,static所修饰的成员是公共资源,即不属于任何一个类的成员,sta......
  • 创建一个很棒的 GitHub 个人资料自述文件!!
    创建一个很棒的GitHub个人资料自述文件!!啊,自述文件——当你开始一个新的GitHub存储库或项目时生成的那些Markdown文件。也许你给你的项目一些描述,或者你是一个偶尔更......
  • KMP算法的底层理解
    KMP的主要思想是当出现字符串不匹配时,可以知道一部分之前已经匹配的文本内容,可以利用这些信息避免从头再去做匹配了。KMP的精髓所在就是前缀表。(下面用next[]数组来表......