Static相关知识总结

Static静态关键词

static修饰的成员变量在系统中只保存一份,且可以被共享、修改

访问方式:

  • 类名.静态成员变量名【推荐】
  • 对象名.静态成员变量名

 无static修饰的:是属于对象的(即实例成员变量),必须使用对象名进行访问。

成员方法分为:

1.静态成员方法(建议用类名访问,也可使用对象名使用)

2.实例成员方法(无static修饰,归属于对象,需要通过对象名访问)

  • 同一个类中访问静态成可以省略类名。

 static使用场景:

  1. 若该方法是以完成共同行为为目的的,申明为静态方法。
  2. 若方法中需要访问实例成员,表示对象自己的行为的,用实例成员方法。

static访问注意事项

以下是我笔记的一些内容

18563c59d08c4c42914143d69593ff01.png

 static应用知识:工具类

什么是工具类?

工具类顾名思义就是工具箱一样的存在,类中都是一些静态成员方法,每个方法都是以完成一个共同功能为目的,这个类供工作人员访问。

工具类的好处:

  1. 调用方便,随用随调
  2. 提高代码利用率(一次编写,处处可用)

工具类定义的其他要求:

由于工具类里面都是静态的成员方法,可直接用类名访问,因此不用创建新对象,可直接将工具类的构造器进行私有(这样使代码显得很专业)。 

 static应用知识:代码块

类的五大成分:成员变量、成员方法、构造器、代码块、内部类。

代码块的位置:位于类中,方法外;在java中,由{}围起来的代码叫做代码块。

代码块的分类:  

  • 静态代码块

格式:static{}

特点:需要static修饰,随类加载而加载,自动触发只执行一次

作用:在类加载时,对一些数据进行数据初始化处理,方便后续使用。

public class code{
    public static void main(String[] args) {
        A a = new A();  
    }
}
class A{
    //静态代码块
    static {
        System.out.println("静态代码块正在被执行");
    }
}
//执行结果:静态代码块正在被执行

创建一个B类作为A的父类

public class code{
    public static void main(String[] args) {
        A a = new A();  
    }
}
class A extend B{
    //静态代码块
    static {
        System.out.println("静态代码块A正在被执行");
    }
}
class B{
    //静态代码块
    static {
        System.out.println("静态代码块B正在被执行");
    }
}
//输出结果:静态代码块B正在被执行
           静态代码块A正在被执行

 说明代码块可以被继承,子类被调用时,先执行父类的静态代码块,在执行子类的静态代码块。

再看一段代码:

public class code{
    public static void main(String[] args) {
       System.out.println(A.n)

    }
}
class A{
    public Int n=100;
    //静态代码块
    static {
        System.out.println("静态代码块正在被执行");
    }
}
//执行结果:静态代码块正在被执行
           100

 说明静态代码块总是最先加载

  • 构造代码块

格式:{}

特点:创建的构造器执行时执行一次并且在构造器中执行。

使用场景:初始化实例资源

static应用知识:单例模式

什么是设计模式?

在开发时,一个问题可能有很多解法,问题的最优解就是设计模式。

单例模式

这种模式只有一个实例对象,可以节省内存空间。

饿汉单例:

是什么?是在获取对象之前就已经准备好了一个对象,这个对象只能有一个所以定义成静态成员变量。

特点:1.构造器私有化。

           2.创建static修饰的对象。

public class Person {
    private static Person person = new Person();//建一个静态变量储存的对象
   
    private Person(){}//构造器私有化

    public static Person getInstance(){
    return person;
    }
}

懒汉单例:

是什么?顾名思义就是真正需要使用对象时才去创建对象。

设计步骤:

1.定义一个类,将构造器私有

2.定义一个对象,用静态变量储存

3.提供一个返回单例对象的方法

public class User {
    //懒汉式单例,只有在调用getInstance时才会实例化一个单例对象
    public static User user; //静态变量储存的对象
    private User(){

    }                      //构造器私有

    public static User getInstance(){
    if(user==null){       
    user = new User();  判断对象是否存在
    }
    return user;
    }                  //当真正需要时调用,并返回单例对象
}

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
static关键字在Java编程中用于修饰类的成员,表示这个成员属于类本身而不是对象实例。它具有以下几个用途和特点: 1. 静态变量:使用static关键字修饰的变量是静态变量,也称为类变量。静态变量在类加载时创建,并且在整个程序运行期间只有一个副本。可以通过类名直接访问静态变量,而不需要创建类的对象。 2. 静态方法:使用static关键字修饰的方法是静态方法,也称为类方法。静态方法可以直接通过类名调用,不需要创建类的对象。静态方法只能访问静态变量和调用其他静态方法,不能直接访问非静态的成员变量和调用非静态的成员方法。 3. 静态代码块:使用static关键字修饰的代码块称为静态代码块,它在类加载时执行,并且只执行一次。静态代码块一般用于初始化静态变量或执行一些只需要执行一次的操作。 通过以上练习中的引用内容可以看出,static关键字在相关练习中被用于修饰了print静态方法,使得这个方法可以直接通过类名调用。同时,可以注意到执行了多次该静态方法,并且输出了"山西省 OK"的结果。 总结起来,static关键字的相关练习主要涉及到静态变量、静态方法和静态代码块的使用。它们是Java编程中重要的基础知识,掌握它们可以更好地理解和使用Java语言。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [详解Java编程中static关键字和final关键字的使用](https://download.csdn.net/download/weixin_38508126/12802953)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [static关键字(代码练习)](https://blog.csdn.net/wenyunick/article/details/104267040)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值