面向对象程序设计(object oriented programming 简称OOP),对象是一个由信息(变量)及对信息进行处理(方法)的描述,其本质是对现实事物的特征和变化规律建立的模型
1.1定义
细节(变量和方法)隐藏,成员变量设置为私有(private),然后提供set和get方法来读和取。通俗的讲,封装就是不允许直接访问成员变量,必须通过set和get方法来访问;
1.2特点
安全,便于重构
1.3实例
1.4权限修饰符
public>protected>默认>private
2.1定义
2.2特点
1.所有类都有父类,即所有类都派生于Object类 2.只能单亲继承,即每一个子类只能有一个父类 3.子类只能继承父类的非private修饰的变量和方法 4.子类可以通过父类的公有set/get方法访问到父类的私有变量 5.子类可以直接使用继承的变量和方法,不需要再在子类中声明或写出
2.3构造方法constructor
构造方法(又叫构造器)是一种特殊的方法,它的作用是在创建对象的时候 ,完成对象成员变量的初始化。
特点:
1.方法名与类名一致
2.没有返回值也没有void
3.通过new关键字调用
无参构造方法
5.构造方法可以重载
示例:
2.4 super关键字
表示当前类的父类对象,可以使用super关键字实现对父类变量和方法的访问
注意:在子类的构造方法中,无论写不写super(),java都会默认使用super()调用父类的构造方法
示例:
2.5重写
子类继承了父类的方法,对父类的方法中的执行代码进行修改以满足子类业务的需要,这就是重写。
特点:
1.重写发生在子父类当中
2.方法名、参数列表、返回值类型均相同
方法体不同或者访问控制修饰符不同
4.子类方法的访问权限不能缩小
5.静态方法(static)不能进行重写(因为静态资源只加载一次)
示例:
2.6重写与重载的区别
重写
重载
发生位置
子父类中
同一个类中
改变的位置
访问控制修饰符不同
方法体不同
参数列表不同
不变的位置
方法名、参数列表、返回值类型 都不变
方法名不变
没有继承就没有多态,生成的对象,在调用父类方法时,如果方法被子类重写,则调用的是子类重写的方法。
代码当中体现多态性,其实就是一句话: 父类引用指向子类对象
格式:父类 对象名 = new 子类();
3.1抽象类
抽象类不能被实例化,它的作用是提供给其他类进行继承
继承关键字abstract
修饰类,类为抽象类,不能被实例化。
修饰方法,方法为抽象类,只有方法的签名,没有方法体。
抽象类特点:
1.抽象类不能被实例化,即抽象类不能创建对象;
2.子类继承抽象类,必须实现该抽象类当中所有的抽象方法;
3.抽象类,可以包含抽象方法和非抽象方法(普通方法/构造方法)以及变量。
3.2接口
接口是方法签名的集合
实现接口关键字implements
接口的特点:
2.子类实现接口,并重写接口的所有的签名方法;
3.接口只有方法的签名和变量
4.接口的变量,会默认用public final static修饰
5.接口的签名方法,会默认用public abstract修饰
6.接口不能自身实例化,接口的实现类可以实例化
7.接口可以实现多个,而父类只有一个(单亲继承),而且必须先继承父类再实现接口
接口的优点
1.解决Java中的单亲继承问题(继承只能单亲继承,但是一个类可以实现多个接口)
2.接口可以实现并行开发
3.便于重构
3.3类型转换
3.3.1向上转换:子类对象向父类转型
1.将一个【父类的引用】指向一个子类对象,称为向上转型;此时自动进行类型转换(即可以理解为创建了一个父类类型的子类对象)
2.通过父类的引用调用的方法,是子类重写或继承父类的方法,而不是父类原本的方法,更不是子类特有的方法;
3.通过父类的引用无法调用子类特有的方法,即向上转型的子类对象只能调用继承自父类的方法,而不能调用子类独有的方法,方法数量缩小,安全
3.3.2向下转型:父类对象 向子类转型
父类对象向子类转换需要强制类型转换;
1.将一个指向子类对象的父类引用赋给一个子类的引用,称为向下转型
2.只有Object有向下转型的可能
本文简要介绍了Java中解析一个既包含对象又包含数组的JSON字符串,并将其转换为Java对象,给出了两个详细的代码示例,并介绍了Gson库的功能与特点、使用场景、代码示例等。
## Java线程三要素在Java中,线程是实现并发编程的一种重要手段。了解和掌握线程的基本概念和相关知识,对于开发高效、可靠的多线程程序至关重要。本文将介绍Java线程的三个重要要素,即线程的创建、线程的调度和线程的同步,并给出相应的代码示例。### 线程的创建在Java中,线程的创建有两种方式,一种是通过继承Thread类,另一种是通过实现Runnable接口。下面分别给出两种方式
# 实现Java变量使用的三要素## 一、整件事情的流程我们在使用Java变量时,需要遵循三个要素:声明、赋值和使用。下面是实现这三要素的流程:```mermaiderDiagram VARIABLE --> DECLARE VARIABLE --> ASSIGN VARIABLE --> USE```## 二、具体步骤和代码示例### 1. 声明变
# Java事件处理三要素## 概述在Java中,事件是指用户在应用程序中进行的操作,如点击按钮、输入文本等。事件处理是指对这些事件进行响应和处理的过程。Java事件处理的三要素包括:事件源、事件监听器和事件对象。事件源是指产生事件的对象,如按钮、文本框等。事件监听器是负责监听事件源并执行相应操作的对象。事件对象是包含事件相关信息的对象,用于传递给事件监听器。下面我将详细介绍如何实现
变量的认识1 什么是变量 Java用于临时性存储数据的单位/容器。2.变量的三要素 a.变量的数据类型**按照数值和非数值划分:** 数值: byte short int long float double 非数值: char boolean String**按照基本和引用数据类型划分:** 基本数据类型:byte short int long f
目录1、Java 的数据类型有哪些?2、变量的三要素是什么?变量使用有什么要求?3、基本数据类型变量和引用数据类型变量有什么区别?4、Java 的运算符+有几种意思?5、Java 的自增、自减运算符在自增变量前后有什么区别?6、Java 的与运算符& 和 && 的区别?7、Java 的运算符| 和 || 的区别?8、Java 的运算符<<,>>,&g
对于很多刚接触的产品小白而言,API接口它是一个产品和研发领域的专业术语,大家可能在一些文章中都已经有接触过API接口的概念。实际上,API接口的应用现如今已经非常广泛和成熟,这个概念主要活跃在公司内部的各系统之间的衔接和对接以及公司间合作的场景。接下来我会从三个方面说明,相信各位认真读完也能对API有一个更新的了解。本文目录:一、API接口是什么?二、为什么我们需要API接口?三、API接口的核
文章目录1、数据类型概述2、字符编码3、数据类型详解3.1字符型详解3.2整数型详解3.3浮点型详解3.4布尔型详解3.5基本数据类型转换总结 1、数据类型概述我们知道任何一个变量都包括三要素,分别是:数据类型、变量名、值。其中数据类型尤为重要,数据类型的作用就是决定程序运行阶段会给该变量分配多大的内存空间进行存储。Java数据类型包括两大类:基本数据类型和引用数据类型(之后学习)。引用数据类型
Java面向对象三大特性 : 封装、继承、多态。面向对象思想中有两个概念,类和对象。类:对某一类事物的抽象描述。对象:现实生活中该类事物的个体。好吧,很抽象是不是,不要紧,有图有真相。本人喜爱足球,所以拿足球举例了。图中可以将中场看作一个类,下面的球员名称看成对象,从中场和球员名称的关系可以看出类和对象的关系。中场可以描述多个球员名称单位共同特征,它是对象的模板。下面的球员名称
Java 的数据类型有哪些? Java 的数据类型有: (1)基本数据类型:byte,short,int,long,float,double,char,boolean (2)空类型:void (3)引用数据类型:数组、类、接口、枚举、注解等 2、变量的三要素是什么?变量使用有什么要求? 变量的三要素: 数据类型、变量名、变量值 变量使用要求: 变量必须先声明再使用; 变量必须初始化,其中成员变量有
说到变量,无非可以想到常量,常量是固定不变的单位,例如π,很显然变量是变化的量,变量变量,就是可以发生变化的,也就是说变量可以被赋值改变的。变量的用途可谓是一架桥梁,每一个结构部分,都离不开变量的存在,通过变量来连接一个一个的数据。变量有三要素:变量名,变量类型和变量值。变量名可以随意取,但是要遵循变量命名的规则:首字母必须为字母、下划线、美元符号,而其他位置可以是字母、下划线、美元符号和数字。变
怎样才算是一个合格的程序员呢,我想要从三个方面来研究这个问题。 知识:写在书本上的都是知识,无论它怎么来的,在书上的就都是知识。程序员需要掌握大量的知识才行。作为java程序员,你需要学习:java 的基础知识web开发的知识,如jsp、servlet数据库知识,主要是sql框架知识,如struts、hibernate、webwork、spring 知识是用来指导实践的,多数的知识只是提供原理
1.概念变量是程序的基本组成单位,变量都是其程序的基本组成单位,比如//变量有三个基本要素(类型+名称+值) 2.变(变化)量(值)的介绍变量相当于内存中的一个数及存储空间的表示,你可以把变量看作是一个房间的门牌号,通过门牌号我们可以找到房间,而通过变量名可以访问到变量(值)3.变量使用注意事项变量表示内存中一个存储区域【不同变量,类型不同,占用空间大小不同,比如:int 4个字节
1 . 原子性(Atomicity):比如:i = 2; //原子j = i; //非原子 (1 读i,2 赋值j)i++; //非原子 (1 读i,2 +1 ,3 赋值i)i = i + 1; //非原子 (1 读i,2 +1 ,3 赋值i)上面4个操作中,i=2是读取操作,必定是原子性操作,j=i你以为是原子性操作,其实吧,分为两步,一是读取i的值,然后再赋值给j,这就是
C#的垃圾回收(GC)机制通过代际回收(0/1/2代)自动管理内存,采用标记-清理-压缩流程回收无用对象。优化策略包括减少对象创建(使用值类型/对象池)、处理大对象碎片、避免内存泄漏(及时释放资源)以及选择合适的GC模式(工作站/服务器)。高性能场景需监控GC行为,通过工具诊断问题,重点降低内存分配压力,确保应用性能。
告诉你如何使用OLAMI自然语言理解开放平台API制作自己的智能对话助手我们经常在电影中看到机器和人对答如流,随着越来越多自然语言开放平台的出现,IT爱好者制作一个自己的APP或者小玩具等逐渐可以变为现实。 自然语言对话即你的APP或者你制作的工具、机器人等能够对用户输入的语音或者文字做出准确的回应。比如,在微信公众号中,经常要求用户通过输入1、2或者其他关键字来获取相应的服务,而对于句子却无法
一篇搞定:零基础也能5分钟跑起第一个HBuilderX项目(含uni-app、Vue3、TS、原生小程序全流程示例) 一、HBuilderX 是什么? 定位 亮点 国产「前端·全端」IDE 一套代码编到 6 端(H5、小程序、App、iOS、Android、桌面) uni-app 官方唯一指定工具 ...
adafruit-circuitpython-ssd1305 是Adafruit针对CircuitPython平台开发的库,用于控制SSD1305驱动的OLED显示屏。SSD1305是一款单色OLED控制器,支持128×64、128×32等分辨率的显示屏,常用于嵌入式系统中显示文本、图形和简单图像。