java笔记之静态修饰附和单例设计模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java笔记之静态修饰附和单例设计模式相关的知识,希望对你有一定的参考价值。

 

                           第六天笔记

静态修饰符static:

.static修饰成员变量:

  1. static用来修饰成员变量叫静态成员变量,没有static修饰的成员变量叫非静态成员变量
  2. 静态成员的访问方式:

(1)   用对象进行访问:对象名.变量名

(2)   通过类名来访问:类名.变量名;

  1. 使用注意点:

(1)   只有需要数据共享才需要用static修饰

        //公有属性
        String name;
        //这个变量就变成了一个共享数据 ,单独存放在一个地方
        static String country;//变量只会初始化一次。在内存中值存在一个。

(2)   只有静态变量才能用类名调用,非静态变量只能通过对象调用

(3)   局部变量不允许被static修饰

 

.Static用来修饰方法

  1.访问方式:

 (1) 用对象进行访问:对象名.方法名

(2)通过类名来访问:类名.方法名; 推荐使用

   public static void eat (){
    
        System.out.println(country+"正在吃饭");
    }

2.使用注意点:

   (1)静态方法可以用对象和类名调用.非静态方法只能用对象来调用.

      (2)静态方法是可以访问静态的成员变量,不能够访问非静态的成员变量, 非静态方法中可以访问任何成员变量。

        原因:有可能静态方法被调用了,但是对象还没有被创建出来。

      (3)静态方法可以直接访问静态方法,但是不能访问非静态方法.非静态方法是可以访问静态方法。

         原因:有可能静态方法被调用了,但是对象还没有被创建出来。

(4)   静态方法中是不允许出现this关键字和super关键字

    3. 什么情况下使用static来修饰方法:

                     当一个方法不需要直接访问非静态数据,这个时候就可以用static修饰 (定义工具类)

     4.特点 : 静态的数据早于非静态的数据存在内存中。

 .静态代码块:

   编译的java.class文件被使用的时候就执行了.

 

权限修饰符:

  1. public: 公共的,公开的 权限是最大的,任何在任何情况下都可以调用
  2. private :私有的,权限是最小的 只能自己本类中访问
  3. protected :受保护的。
  4. 主函数为什么这样定义:

(1)   为什么用public: main主方法是由jvm来调用的,jvm实际也是一个程序,为了保证jvm能够在任何情况下来调用主函数。

(2)   Static: 如果没有static 这个时候调用主方法就需要通过对象来调用,jvm如果创建对象不知道该传递什么参数 所以为例避免麻烦,就将方法定义成静态的,这个时候就不需要考虑对象,直接类名调用就可以了。

(3)   Void: main是由jvm调用,返回值是给jvm ,jvm接收返回值没有任何意义,所以就不需要返回值。

(4)   Main: 不是关键字,main以及约定好这个就叫入口

(5)   Args: 用来接收程序运行时传递进来的参数。

 

单例设计模式:

   1.单例设计模式 : 一个类只能够创建一个对象出来.

    2.单例的设置步骤:

              (1)创建一个对象把他设置为私有的静态成员变量,保证对象唯一

           private static 类名 对象名 = new 类名();

(2)把构造方法设置为私有的,防止new一个对象。

 private 类名(){}

(3)   定义一个公  开的静态方法,返回值为上面的对象。

public static 返回值类型 getInstance (){

 

         return 对象名;

  }

     3.2种单例模式:饿汉单例模式和懒汉单例模式.










以上是关于java笔记之静态修饰附和单例设计模式的主要内容,如果未能解决你的问题,请参考以下文章

Java:java学习笔记之Java单例模式的简单理解和使用

Java:java学习笔记之Java单例模式的简单理解和使用

Java 设计模式 -- 单例模式的实现(饿汉式枚举饿汉式懒汉式双检锁懒汉式内部类懒汉式)jdk 中用到单例模式的场景DCL实现单例需用volatile 修饰静态变量

Java 设计模式 -- 单例模式的实现(饿汉式枚举饿汉式懒汉式双检锁懒汉式内部类懒汉式)jdk 中用到单例模式的场景DCL实现单例需用volatile 修饰静态变量

Java 基础知识点 笔记总结

文成小盆友python-num8 面向对象中的成员,成员修饰符,特殊成员,异常处理,设计模式之单例模式