JAVA面向对象高级部分

1、static

static修饰成员变量

基本概念和定义

static修饰的称为类变量。
在这里插入图片描述

使用方法

1、类变量的用法

如下图红框中
1)类名.类变量,通过类名直接调用
2)对象.类变量
在这里插入图片描述

2、实例变量的用法

实例化之后才能调用:对象.实例变量,不能通过类名访问
在这里插入图片描述

执行原理

类变量执行原理:因为只有一份,所以初始化无数次,都会输出最后初始化的结果。
在这里插入图片描述
实例变量执行原理:
最后输出首次初始化的结果
在这里插入图片描述

总结

在这里插入图片描述

static修饰成员变量的应用场景

在这里插入图片描述

案例的实现步骤

建立构造器,通过调用构造器
在这里插入图片描述

总结

在这里插入图片描述

static修饰修饰成员方法

成员方法分类

类方法和实例方法
在这里插入图片描述

代码示例
类方法调用示例:
在这里插入图片描述
实例方法调用的定义:
在这里插入图片描述

执行原理

在这里插入图片描述

总结

在这里插入图片描述

补充知识,main方法

在这里插入图片描述

在这里插入图片描述

static修饰成员方法的应用场景

最常见的应用场景是做工具类
在这里插入图片描述

示例:
在这里插入图片描述

工具类不需要创建对象(因为工具类是类变量,直接通过类名即可调用,故不需要创建对象来调用),节约内存,在工具类中私有化。
在这里插入图片描述

在这里插入图片描述

总结

在这里插入图片描述

static的注意事项

在这里插入图片描述

1、类方法可以直接访问类的成员,不可以直接访问实例成员
实例成员 = 实例变量
在这里插入图片描述

2、实例方法中既可以直接访问类成员,也可以直接访问实例成员,实例方法还能直接访问类中其它实例方法。
在这里插入图片描述
实例方法访问其它实例方法,this可加上也可以省略。
在这里插入图片描述
3、实例方法中可以出现this关键字,类方法中不可以出现this关键字
在这里插入图片描述

static的应用知识:代码块

代码块概述和分类

这两种代码块日常使用不多,在socket公司的源码中使用较多。
在这里插入图片描述

静态代码块

1)先输出静态代码块的 结果
在这里插入图片描述
2)静态代码块仅执行一次
在这里插入图片描述
3)在静态变量中为类变量赋值
在这里插入图片描述

实例代码块

1)创建对象时,先执行实例代码块,后执行构造器
在这里插入图片描述
在这里插入图片描述
this表示当前对象的地址
写代码过程中会遇到一些代码重复的情况,减少重复代码的,且实例代码在构造器之前执行,可将下面的重复代码放置实例代码中
在这里插入图片描述
删除重复代码后
在这里插入图片描述

static的应用知识:单例设计模式

确保一个类只有一个对象,不能在类外创建对象
在这里插入图片描述
饿汉式单例设计模式例子:
在这里插入图片描述

单例设计模式的应用场景和好处

Runtime

在这里插入图片描述

单例设计模式的实现方法

在这里插入图片描述

总结

在这里插入图片描述

懒汉式单例设计模式

在这里插入图片描述

例子

在这里插入图片描述

懒汉式单例和饿汉式单例选择

若需要频繁使用的,则采用饿汉式,把单例模式提前设计出来
若使用没这么频繁,则采用懒汉式,节约内存。

面向对象的三大特征之二:继承

继承的快速入门

什么是继承

在这里插入图片描述

例子

1、父类如何调用子类的成员
在这里插入图片描述
2、如何在父类和子类外创建对象
在这里插入图片描述

继承的执行原理

在这里插入图片描述

总结

在这里插入图片描述

继承的好处

减少重复代码的编写
在这里插入图片描述
改进后
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/494214.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

.NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】

设计模式是软件工程中常用的解决特定问题的通用设计方法。它们提供了经过验证的解决方案,可用于解决在软件开发过程中经常遇到的一些常见问题。设计模式不是一种具体的编程语言特性或语法,而是一种通用的设计思想或模板,可以帮助开发人员设计…

一份系统的“光影猫”使用教程(下)

欢迎大家关注我一下 后面几天可能没有话题可以写了……大家见谅 原文地址:一份系统的“光影猫”使用教程(下) - Pleasure的博客 下面是正文内容: 前言 这是(上)个人NAS系统的搭建——光影猫 - Pleasure…

【SRE系列之Jenkins的使用】--实现ssh和http克隆

1、Jenkins的概念 1.1Jenkins的介绍 Jenkins是一个独立的开源软件项目,是基于Java开发的一种CI(Continuous integration,持续集成) &CD (Continuous Delivery,持续交付)工具,用于监控持续重复的工作&a…

Django后台管理(二)

一、自定义注册管理类介绍 官网:Django 管理站点 | Django 文档 | Django 注册模型除了使用 Django 默认的管理类admin,也可以自定义,比如: class StudentAdmin(admin.ModelAdmin):pass admin.site.register(Student, StudentAdmin)ModelAdmin 类是管理界面中模型的表示。…

pycharm控制STM32F103ZET6拍照并上位机接收显示(OV7670、照相机、STM32、TFTLCD)

基于STM32的照相机 准备工作最终效果一、下位机1、主函数2、OV7670初始化 二、上位机1、控制拍照2、接收图片数据 三、资源获取 准备工作 一、硬件及片上资源: 1,串口1(波特率:921600,PA9/PA10通过usb转ttl连接电脑,或者其他方法)上传图片数据至上位机 2,串口2(波特…

JSON简介以及如何在Python中使用JSON

什么是JSON? JSON是"JavaScript Object Notation"的简称,是一种数据交换格式 JSON格式 假设我们有一个对象,这个对象有两个属性:“name”跟“age”。 在JSON中是这样表达的: { "name":"男孩…

【HarmonyOS】鸿蒙开发之Stage模型-基本概念——第4.1章

Stage模型-基本概念 名词解释 AbilityStage:应用组件的“舞台“ UIAbility:包含UI界面的应用组件,是系统调度的基本单元 WindowStage:组件内窗口的“舞台“ Window:用来绘制UI页面的窗口 HAP:Harmony Ability Package(鸿蒙能力类型的包) HSP:Harmony Sh…

【Flink精讲】Flink状态及Checkpoint调优

RocksDB大状态调优 RocksDB 是基于 LSM Tree 实现的(类似 HBase) ,写数据都是先缓存到内存中, 所以 RocksDB 的写请求效率比较高。 RocksDB 使用内存结合磁盘的方式来存储数据,每 次获取数据时,先从内存中 …

Unity:WWW工具类的使用技巧

1、简述 Unity的WWW类是一种用于发送HTTP请求和接收HTTP响应的类。它可以用来访问网络上的资源,如文本、图像、音频和视频等。本文将介绍如何使用Unity的WWW类来访问网络资源。 2、创建一个简单的HTTP请求 首先,我们需要创建一个WWW对象来发送HTTP请求…

第 1 章 微信小程序与云开发从入门到实践从零开始做小程序——开发认识微信小程序

小北的参考工具书 小程序开发的图书并不少,这本书仍然值得你拥有! 首先,这是一本全栈小程序开发教程,循序渐进,由浅入深,介绍了小程序开发你想了解的方方面面,包括近其小程序开发的各种新技术应…

2024程序员容器化上云之旅-第2集-Ubuntu-WSL2-Windows11版:接近深洞

故事梗概 Java程序员马意浓在互联网公司维护老旧电商后台系统。 渴望学习新技术的他在工作中无缘Docker。 他开始自学Vue3并使用SpringBoot3完成了一个前后端分离的Web应用系统,并打算将其用Docker容器化后用K8s上云。 3 挑选工具 马意浓画好架构图后&#xff…

【Java程序员面试专栏 算法思维】四 高频面试算法题:回溯算法

一轮的算法训练完成后,对相关的题目有了一个初步理解了,接下来进行专题训练,以下这些题目就是汇总的高频题目,本篇主要聊聊回溯算法,主要就是排列组合问题,所以放到一篇Blog中集中练习 题目关键字解题思路时间空间岛屿数量网格搜索分别向上下左右四个方向探索,遇到海洋…