Java学习第七天

ops/2024/12/22 23:09:59/

成员方法分类:

静态成员方法(有static修饰 属于类)建议用类名访问,也可以用对象访问

实例成员方法(无static修饰 属于对象)只能用对象出发访问

使用static来定义一些工具类

工具类直接使用类名.方法调用即可,将构造器私有化,不要对外产生对象。

/*
* 工具类
* */
public class ArraysUtils {//构造器私有化private ArraysUtils(){}//数组转字符串public static String tostring(int[] arr){if(arr == null){return null;}String result = "[";for (int i = 0; i < arr.length; i++) {if(i == arr.length - 1){result += (arr[i] + "]");}else{result += (arr[i] + ",");}}return result;}//求数组的平均值public static double getAverage(int[] arr){if(arr == null){return 0.0;}double ave = 0.0;double sum = 0.0;for (int i = 0; i < arr.length; i++) {sum += arr[i];}ave = sum/arr.length;return ave;}}//测试类
public class TestDemo {public static void main(String[] args) {int[] arr = {1,5,44,29,36,7,12,23,18,489};System.out.println(arr);System.out.println("原始数组为" + ArraysUtils.tostring(arr));System.out.println("均值为" + ArraysUtils.getAverage(arr));int[] arr1 = null;System.out.println("空数组为" + ArraysUtils.tostring(arr1));System.out.println("均值为" + ArraysUtils.getAverage(arr1));}
}

代码块

类中的代码块在main方法之前执行,可以做一些初始化操作,

构造代码块在创建对象时候触发,比构造器先执行。

静态代码块用于初始化类;构造代码块用于初始化对象、实例资源。

单例设计模式

设计模式是一套被前人反复使用、多数人知晓、经过分类编目的代码设计经验的总结,后来者可以拿来解决问题。

设计模式是软件中的常见解决方案,好的设计模式可以进一步的提高代码的重用性。

单例模式:可以保证系统中,应用该模式的这个类只有一个实例,即一个类永远只能创建一个对象。例如任务管理器对象我们只需要一个就可以解决问题了,这样可以节省内存空间。

饿汉单例设计模式

在用类获取对象的时候,对象已经提前为你创建好了。

设计步骤:

1.定义一个类,把构造器私有化。

2.定义一个静态变量存储一个对象。

/*
* 学会饿汉单例模式
* */
public class SingleInstance {//构造器私有化private SingleInstance(){}//定义一个公开的静态变量来存储对象//饿汉式单例模式:在这里加载静态变量的时候就会创建一个对象。public static SingleInstance s1 = new SingleInstance();
}

懒汉单例模式

在真正需要该对象的时候,才去创建一个对象(延迟加载对象)。

/*
* 学会使用懒汉单例模式
* */
public class SingleInstance2 {//构造器私有化private SingleInstance2(){}//创建一个公共的静态变量来存储实例对象private static SingleInstance2 s2;//提供一个公共的方法来获取实例对象public static SingleInstance2 getInstance(){//实例对象为空,则创建一个直接返回 否则返回已经创建的实例对象/*以下注释代码有问题,实现不了懒汉单例,因为第一次创建时,返回一个新对象,但是该对象并没有赋值给s2,这样下次执行getinstance方法时候,s2仍然为null,所以每次返回的都不一样。*//*if(s2 == null){//第一次创建return new SingleInstance2();}return s2;*/if(s2 == null){s2 = new SingleInstance2();}return s2;}}

懒汉单例最好使用private私有化变量,饿汉单例必须public,因为懒汉单例外部是通过getinstance方法来获取对象的,而该方法是public公开的;饿汉单例需要外部来获取该变量,必须public公开。

继承

就近原则,先局部,然后子类,最后父类。

私有方法不能被重写


http://www.ppmy.cn/ops/105981.html

相关文章

Flask中的g的作用

Flask中的g对象是一个非常重要的概念&#xff0c;它在Flask应用程序的上下文中扮演着关键角色。下面我将详细阐述g对象的作用&#xff0c;但由于篇幅限制&#xff0c;无法达到5000字&#xff0c;但会尽量全面而精炼地介绍其关键特性和用途。 Flask中的g是什么&#xff1f; 在…

百度 AI Studio 脚本任务篇,它不同于notebook任务是支持免费的, 脚本任务是需要算力卡的,更好的算力 支持四张显卡,

aistudio 脚本任务是需要算力卡的&#xff0c;是收费的一个项目&#xff0c;估计是运行效率更高&#xff0c;支持4张显卡&#xff0c;同时计算。 # -*- coding: utf-8 -*- """ 空白模板 """ ###### 欢迎使用脚本任务&#xff0c;首先让我们熟悉…

时序数据库 IoTDB 为什么选择 TPCx-IoT 基准测评?

IoTDB 在 TPCx-IoT 榜单的 What 与 Why 解答&#xff01; 去年&#xff0c;我们发布了 IoTDB 多项性能表现位居国际数据库性能测试排行榜 benchANT&#xff08;Time Series: DevOps&#xff09;第一名的好消息。 刚刚落幕的数据库顶级会议 VLDB 上&#xff0c;我们又收获了一则…

打包部署之---》Xshell使用不了如何部署

前端打包发布有很多种&#xff0c;常用 xshell 连接服务器打包发布&#xff0c;但是小编发现最近小编电脑上的Xshell7出现了一个问题&#xff0c;一直报50003错误&#xff0c;说是不是最新版本&#xff1b;让你升级 可是点击确定以后确提示小编已经是最新版本; 这个时候小编选择…

隐私指纹浏览器产品系列 —— 浏览器指纹 下(四)

1.引言 在之前&#xff0c;我们讨论了一些检测站&#xff0c;比如老牌的王者BrowserLeaks和璀璨的新星CreepJS。虽然这些检测站中展示的数据繁多且精细&#xff0c;看似和我们日常没什么关系&#xff0c;但是这些工具对于浏览器指纹识别和隐私保护的研究有着重要的意义。 不过…

第65期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

【Java】ApiPost请求返回 `406` 状态码(jackson)

Java系列文章目录 补充内容 Windows通过SSH连接Linux 第一章 Linux基本命令的学习与Linux历史 文章目录 Java系列文章目录一、前言二、学习内容&#xff1a;三、问题描述3.1 问题截图3.2 错误简介3.2.1 HTTP状态码 406 Not Acceptable3.2.2 序列化和反序列化 3.3 后端问题位置…

设计模式 19 观察者模式

设计模式 19 创建型模式&#xff08;5&#xff09;&#xff1a;工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式结构型模式&#xff08;7&#xff09;&#xff1a;适配器模式、桥接模式、组合模式、装饰者模式、外观模式、享元模式、代理模式行为型模式&#xff…