静态,单例模式,全局常量,继承

NullPointerException空指针异常

static:静态

  • 能修饰方法(静态方法),全局变量(静态属性,类变量)

  • 不能修饰类,构造器,局部变量

  • 静态属性和静态,可以直接通过类名调用

  • 静态方法只能直接访问静态成员 不能直接访问非静态成员

  • 静态属性归这个类的所有对象共享

对于静态变量的内存解释

图片发自简书App

单例模式(饿汉模式、懒汉模式)

package com.neuedu.chapter3_0308;

public class Singleton {
    
    /*
     * --饿汉模式
     * --懒汉模式(懒加载)
     * 
     * 
     * 单例模式:保证一个类只能有一个实例(一个类只能创建一个对象)
     * 
     * 问题1:怎么解决“多例”(不能让其他类随意的使用构造器)
     * 解决方式:构造器私有
     * 
     * 问题2:怎么解决提供一个实例
     * 解决方式:在单例的类中创建一个实例
     * 
     * 问题3:不能随意修改
     * 解决方式:将创建的实例也私有
     * 
     * 问题4:如何获取这个实例
     * 解决方式:提供一个静态公有方法,将实例反出去
     * 
     */
    // 饿汉模式
//  private static Singleton singleton = new Singleton();
//  private Singleton() {}
//  public static Singleton getInstance(){
//      return singleton;
//  }
    
//  懒汉模式(懒加载)
    private static Singleton singleton ;
    private Singleton() {}
    public static Singleton getInstance(){
        if(singleton==null) {
            singleton =new Singleton();
        }
        return singleton;
    }
    }

全局常量

package com.neuedu.chapter3_0308;

public class Demo3 {
    int num1 = 100;
    // 常量作为全局变量时没有默认值,必须赋值
    final int NUM2 = 200;
    // 修饰基本数据类型值不能变
    // 修饰引用数据类型引用值不能变
    final static int ARR[]= new int[]{1,2,3,4,5};
    public static void main(String[] args) {
        
    
        int num1=20;
        num1= 100;
        // 常量就是在程序运行中不可变的量
        final int NUM2 ;
        NUM2 = 100;
        
            ARR[1]=10;
        
    }
}

继承

继承:
一个类可以从一个现有的类当中派生出来
称为该类的子类,原有的类称为父类(基类、超类)
子类会拥有父类当中所有的属性和方法
除了:①私有成员 ②构造器
在Java中只支持单继承
一个子类只能有一个直接父类,一个父类可以有任意多个子类
继承的语法
public class A extends(拓展) B{}
继承带来的优点:
是一种代码重用的重要手段,也是实现“开闭原则”的基础,
同事子类还可以添加自己的
开闭原则:对拓展开放,对修改关闭

public class Employee {
        String name;
        int id;
        public void code() {
            System.out.println(name+"在工作");
        }
}
// Manager继承Employee
public class Manager extends Employee{
    
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容