Java安全|03.Java基础语法(2)

00x1 单例模式

  1. 定义:

    • 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

    • 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

  2. 应用场景

    • 类的构造过程复杂,需要经过多个步骤,如果让外部直接构造,可能会缺失部分步骤
    • 需要频繁的创建或销毁的对象
    • 创建对象耗时过多或消耗的资源过多,但又经常用到对象
  3. 简单示例

    public class Main {
    public static void main(String[] args) {
    SingleObject dome1 = SingleObject.getInstance();
    //通过getInstance()方法获取SingleObject类的实例对象
    SingleObject dome2 = SingleObject.getInstance();
    //主函数当中使用此类的getInstance()函数,即可得到系统当前已经实例化的该类对象,若当前系统还没有实例化过这个类的对象,则调用此类的构造函数
    System.out.println("dome1 = " + dome1);
    System.out.println("dome2 = " + dome2);
    System.out.println(dome1.equals(dome2));
    //equals()方法比较两个对象是否相同
    }
    }
    class SingleObject{
    private static SingleObject singleObject = null;
    private SingleObject(){
    }
    public static SingleObject getInstance(){
    if (singleObject == null) {
    singleObject = new SingleObject();
    //判断对象singleObject对象是否为null。若是则创建;若否则返回已有的对象。
    }
    return singleObject;
    }
    } >>>
    dome1 = SingleObject@682a0b20
    dome2 = SingleObject@682a0b20
    true

00x2 final关键字

  1. java中提供了一种语法,可以在数据初始化后不被修改,使用关键字final。
  2. final可以修改的对象
    • 修饰变量。修饰类中的变量需要对变量进行初始化,一般将final修饰的变量称为常量。
    • 修饰方法。被final修饰的方法不能被重写。且final不允许修饰构造方法。
    • 修饰类。被final修饰的类不能被继承。
    • 修饰方法参数。一旦修饰,参数无法修改。

00x3 抽象

  1. 定义

    • 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
  2. 抽象方法:只有声明,没有实现的方法称为抽象方法。

    • 语法:abstract 返回值类型 方法名(参数);
  3. 抽象类:不完整的类就是抽象类。包含抽象方法的类一定是抽象类,但是反之抽象类的方法不一定是抽象方法。

    • 语法 abstract class 类名

    • 抽象类无法实例化

    • 抽象类无法直接构造对象,但是可以通过子类间接构造对象.

    • 一个类只能继承一个抽象类。

    • 如果抽象类中含有抽象方法,子类继承时必须重写抽象方法。

      //demo1
      public class Abstract {
      public static void main(String[] args) {
      Fruits apple = new Fruits() {
      @Override
      void color() {
      System.out.println("apple is red");
      }
      };//对方法进行重写
      apple.color();
      }
      }
      abstract class Fruits{
      String fruitName;
      abstract void color();
      }
      >>>
      apple is red //demo2
      public class Abstract {
      public static void main(String[] args) {
      Apple apple = new Apple();
      apple.color();
      }
      } abstract class Fruits{
      String fruitName;
      abstract void color();
      } class Apple extends Fruits{
      @Override
      void color() {
      System.out.println("apple is red");
      }
      }
      >>>
      apple is red

Java基础|03.基础语法(2)的更多相关文章

  1. Java入门 - 语言基础 - 03.基础语法

    原文地址:http://www.work100.net/training/java-basic-syntax.html 更多教程:光束云 - 免费课程 基础语法 序号 文内章节 视频 1 第一个Jav ...

  2. java基础-03基本语法

    关键词 常用关键字53个(含2个保留字): 1.保留关键字(2个) const --常量 常数:用于修改字段或局部变量的声明. goto--转到 指定跳转到标签,找到标签后,程序将处理从下一行开始的命 ...

  3. 023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之——自增自减运算符

    023 01 Android 零基础入门 01 Java基础语法 03 Java运算符 03 算术运算符之--自增自减运算符 本文知识点:Java算术运算符中的自增自减运算符 自增自减运算符 之前我们 ...

  4. 003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程

    003 01 Android 零基础入门 01 Java基础语法 01 Java初识 03 Java程序的执行流程 Java程序长啥样? 首先编写一个Java程序 记事本编写程序 打开记事本 1.wi ...

  5. 086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结

    086 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 03 面向对象基础总结 01 面向对象基础(类和对象)总结 本文知识点:面向对象基础(类和对象)总结 说明 ...

  6. Java多线程系列--“基础篇”03之 Thread中start()和run()的区别

    概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答.本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start( ...

  7. Java基础之基础语法

    前言:Java内功心法之基础语法,看完这篇你向Java大神的路上又迈出了一步(有什么问题或者需要资料可以联系我的扣扣:734999078) 一个Java程序可以认为是一系列对象的集合,而这些对象通过调 ...

  8. # 095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 03 封装总结 01 封装知识点总结

    095 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...

  9. 098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类

    098 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 02 编写并测试Subject类 本文知识点:编写并测试Subject类 说明: ...

  10. 099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类

    099 01 Android 零基础入门 02 Java面向对象 03 综合案例(学生信息管理) 02 案例分析及实现 03 编写并测试Student类 本文知识点:编写并测试Subject类 说明: ...

随机推荐

  1. @Configuration 配置类打断点后,一启动项目读取到该配置类的话就会进断点

    @Configuration 配置类的话,打断点的时候,一启动项目就会读取配置信息,然后你在@Configuration 配置的类中打断点的话,一启动项目就会读取配置类,然后就会进断点,跟你平常的co ...

  2. VSCode+EIDE开发CH32V系列RISC-V MCU

    VSCode+EIDE开发CH32V系列RISC-V MCU 1. VS Code Visual Studion Code (VS Code),是一款由微软开发且跨平台的免费源代码编辑器.该软件支持语 ...

  3. svn 中如何checkout出单个文件

    A 通过命令行操作 1.检出目录images svn co --depth=empty http://www.iusesvn.com/project1/images images_work_dir 这 ...

  4. pytest学习总结

    官方pytest文档:Full pytest documentation - pytest documentation 一.pytest以及辅助插件的安装 1.pytest安装 pip install ...

  5. cloudreve webdav 无法连接问题

    从Windows Vista起,微软就禁用了http形式的基本WebDAV验证形式(KB841215),必须使用https连接,所以在Windows Vista/7/8/10中,要方便地映射网盘文件为 ...

  6. SpringBoot中SpringMVC异常处理机制

    声明 源码基于SpringBoot 2.3.12 前置知识 Tomcat异常处理机制 使用例子 原理简要介绍 先来看下Spring Boot中默认的处理行为,如果DispatcherServlet执行 ...

  7. Django Cannot assign "A1": "B1" must be a "C1" instance.

    Django Cannot assign "A1": "B1" must be a "C1" instance. 原因:使用了外键 说明:如 ...

  8. Kubernetes学习笔记(三)

    [查看某个node上的pod] > kubectl get pods -o wide --namespace=kube-system | grep master-0         #node ...

  9. 监控本机环境生成SQL脚本

    在开发工作中我们客户端连接 测试服务器开发工作,往往很多人操作数据库,如何甄别出自己操作 方法一: 在程序配置节点设置App节点,譬如: <add name="ModelEntitie ...

  10. Java script Date和长整型互换

    document.write(new Date().getTime()); document.write('<br/>') var date1=new Date(1590024428000 ...