首页 > 其他分享 >static关键字

static关键字

时间:2022-10-17 17:01:50浏览次数:40  
标签:构造方法 代码 关键字 Demo1 static println public

static关键字

静态的,作为普通修饰符

  1. 修饰成员变量/方法 --->静态变量/方法||类变量/类方法

在普通方法里面可以访问静态方法,但是静态方法中不能方法非静态成员,且不能使用this,当class被加载时,static也被加载,但是static只被加载一次。对于静态成员,推荐使用:类名.静态成员变量/方法,这种语法在本类和其他类均可使用,例如:Math.pow(a,b)用的就是类和方法

如果静态属性外部也可以访问,一般都是:public static final 常量名称,例如:常数pi的底层代码public static final PI=3.14159

由于当类被加载的时候static也被加载,那就说明static代码块优先级高于普通代码块,普通代码块优先级高于构造方法。

public Demo1() {
        System.out.println("构造方法代码块");
    }
    {
        System.out.println("普通代码块");
    }
    static{
        System.out.println("static代码块");
    }
public static void main(String[] args) {
    Demo1 demo=new Demo1();
}

输出结果

static代码块
普通代码块
构造方法代码块

而且如果创建两次对象的话

public static void main(String[] args) {
        Demo1 demo=new Demo1();
        Demo1 demo1=new Demo1();
    }

static的代码块只被加载一次,输出结果:

static代码块
普通代码块
构造方法代码块
普通代码块
构造方法代码块

例子:

利用static保证有且只有一个对象

public class Demo1 {
    public static Demo1 ob;//创建一个Demo1类的实例对象
    private Demo1() {
        System.out.println("构造方法代码块");
    }//因为只能创建一个对象,所以构造方法得是私有的
    
    static{
        //在static里面给对象开辟空间,并且初始化数据,保证对象只被new一次
        ob=new Demo1();
    }
}
  1. static修饰类-->内部类

    在类的内部:

    1. 成员内部类:
      1. 静态内部类
      2. 非静态内部类
    2. 方法内部类
    3. 匿名内部类
@Setter
@Getter
public class MyClass {
    private int num;
    public static class Child{
        public int a=200;
        public void b(){
            System.out.println("hello,b"+a);
        }
        public static void  c(){
            System.out.println("hello,c");
        }
    }
}
public class Demo1Test {
    public static void main(String[] args) {
       //目的:访问child类的属性和方法
        MyClass myClass = new MyClass();
        MyClass.Child childclass=new MyClass.Child();
        //创建child类的对象,child在myclass下,需要加上myclass
        System.out.println(childclass.a);
        childclass.b();//对象调用public方法
        MyClass.Child.c();//用类名直接调用static成员
    }
}

标签:构造方法,代码,关键字,Demo1,static,println,public
From: https://www.cnblogs.com/Liku-java/p/16799791.html

相关文章

  • 源码分析之序列化器的many关键字
    在序列多个数据时,我们需要指定一个关键字many=True这是为什么呢?其实是,当序列化器产生对象时,传入参数many和不传入会生成两个不同的对象!!这是怎么实现的呢??1.类的对象生......
  • 【ES6】let、const关键字和解构赋值
    ......
  • Java_SE_Lesson_2:多态与static和final关键字
    多态:父类型的引用可以指向子类型的对象。Parentp=newChild;当使用多态方式调用方法时,首先检查父类中是否有sing方法,如果没有则编译错误;如果有,再去调用子类的si......
  • Java中的static详解
    Java中的static详解packageoop.Demo07;​publicclassStudent{​  //静态代码块,在类创建的时候同时创建,只会执行一次,执行顺序为第一  static{    Sys......
  • html页面实现搜索关键字展示
    直接上代码html代码点击查看代码<inputtype="text"id="myInput"onkeyup="myFunction()"placeholder="搜索.."><tableid="myTable"><trclass="header">......
  • static关键字
    packageobj2;/***@authorliu$*@version1.0**1.static关键词的使用(静态的)*2.用来修饰:属性、方法、代码块、内部类**3.用来修饰属性:静态变量(类变量)*......
  • 补:java中static的用法总结
    关于java在static中的用法,大致可以总结为以下三个模块:其一为:静态变量某些特定的数据在内存中只有一份,而且能被一个类的所有实例对象共享。可以使用类名.变量名的形式来访......
  • AI绘画Stable Diffusion关键字技巧分享
    大家使用StableDiffusion通过关键字描述的时候,总觉得画不出想要的图形;在这里,飞链云教大家一个小技巧;那就是使用某种特定的顺序,让AI更好的理解你想要什么;欢迎大家体验AI绘画......
  • 初识C语言(2)——数组、操作符、关键字
    ......
  • static 详解
    主要参考:C/C++中static的用法全局变量与局部变量其他参考:C语言中static的作用静态变量静态变量的作用:限定此变量的使用范围,并在限定访问内共享此变量,具体如下:函......