JavaSE|03.基础语法(2)
Java安全|03.Java基础语法(2)
00x1 单例模式
-
定义:
-
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
-
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
-
-
应用场景
- 类的构造过程复杂,需要经过多个步骤,如果让外部直接构造,可能会缺失部分步骤
- 需要频繁的创建或销毁的对象
- 创建对象耗时过多或消耗的资源过多,但又经常用到对象
-
简单示例
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关键字
- java中提供了一种语法,可以在数据初始化后不被修改,使用关键字final。
- final可以修改的对象
- 修饰变量。修饰类中的变量需要对变量进行初始化,一般将final修饰的变量称为常量。
- 修饰方法。被final修饰的方法不能被重写。且final不允许修饰构造方法。
- 修饰类。被final修饰的类不能被继承。
- 修饰方法参数。一旦修饰,参数无法修改。
00x3 抽象
-
定义
- 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
-
抽象方法:只有声明,没有实现的方法称为抽象方法。
- 语法:abstract 返回值类型 方法名(参数);
-
抽象类:不完整的类就是抽象类。包含抽象方法的类一定是抽象类,但是反之抽象类的方法不一定是抽象方法。
-
语法 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
-
本文来自博客园,作者:c10udz,转载请注明原文链接:https://www.cnblogs.com/c10udz/p/17140651.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析