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. mybatis-plus主键生成策略(实体类配置,数据库插入数据自动生成id)

    转载:MyBatisplus -- ActiveRecord(AR)_mybatisplus idtype.auto_憨憨浩浩的博客-CSDN博客 0.auto:自动增长(mysql,sql serv ...

  2. socket简记-消息格式

    1 原理 1.1 数据格式 Packet header + Application body + Packet Tail 本协议中数据字节序为Little endian(超过一个字节的数据类型在内存中 ...

  3. M1 IntelliJ IDEA2022安装报错解决方法

    下载地址:http://pan.jizhouyun.com/s/I3QJVzk3et 报错一:系统权限问题 报错示例: 1.XX已损坏,打不开:您应该将它移到废纸娄/已损坏 2.打不开:您应该推出磁盘 ...

  4. 调度器44—root_domain—更新路径

    1.  root_domain 的路径的赋值路径 kernel_init_freeable //内核初始化路径调用 [2] sched_init_smp //core.c 传参 cpu_active_ ...

  5. Oracle的Pctfree

    1.创建一张表 create table student( student_id number ); 但是在pl/sql中查看却是以下的建表语句: -- Create table create tab ...

  6. 《Rust权威指南》学习笔记——4. 认识所有权

    Rust权威指南学习笔记--认识所有权 什么是所有权 1. 所有权规则 Rust中的每一个值都有一个对应的变量作为它的所有者. 在同一时间内,值有且仅有一个所有者. 当所有者离开自己的作用域时,它持有 ...

  7. 蓝桥杯训练赛二-2021 问题 G: 坐标排序

    题目描述 请将坐标x,y,z依照以下规则排序: x为第一关键字,当x相同时,依照y(第二关键字)大小来排序,当y相同时,依照z大小来排序(第三关键字) 给出了若干坐标,和一个数k,请输出按关键字排序第 ...

  8. 安装zookeeper 和 kafka

    本文用到的同步脚本   https://www.cnblogs.com/sdgtxuyong/p/16907986.html 一 . 安装zookeeper 修改hosts文件,将test1,test ...

  9. leetcode-36-有效数独,leetcode-37-求解9*9数独

    #include <iostream> #include <vector> #include <utility> #include <unordered_ma ...

  10. 【翻译】了解Flink-概览 -- Learn Flink-Overview

    了解Flink: 上手手册 目录 手册目标和范围 流处理 并行数据流 及时的流处理 有状态流处理 通过状态快照进行容错 翻译来源 Learn Flink:Overview , Learn Flink: ...