本篇文章给大家带来的内容是关于Java对象是什么?Java对象的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
示例:
public class Book { /** * 书名 */ private String name; /** * 作者 */ private String author; /** * 获取书名 * @return */ public String getName() { return name; } /** * 设置书名 * @param name */ public void setName(String name) { this.name = name; } /** * 获取作者 * @return */ public String getAuthor() { return author; } /** * 设置作者 * @param author */ public void setAuthor(String author) { this.author = author; } }
什么是对象
《JAVA编程思想》对于对象的定义是:将问题空间中的元素以及它们在方案空间的表示物称作“对象”。
1. 问题空间:实际解决的问题模型;
2. 方案空间: 计算机(机器模型)。
实际的问题在计算机(机器模型)中的表示称为对象。在上面示例中:计算机用独一无二的实体(new Book())表示书籍,这个实体就称为对象,对象是类的实例。
什么是类
具有相同属性和行为的对象的抽象就是类,即类是对象的蓝图,两者的关系是类的实例就是对象,对象的抽象化就是类。在上面示例中:Book就是类。
对象的特性
1. 行为:类的方法,示例中的方法:getName(),setName(String name),getAuthor(),setAuthor(String author) 。
2. 状态:类的属性,示例中的属性:name,author,
3. 标识:类在内存中的地址,new Book()在内存中的地址就是标识。
面向对象的特征
1、封装:隐藏对象的属性,但对使用者提供方法与这些属性交互,重点是使用者只能通过方法访问对象的属性,实现封装需要有一个私有的属性:name,一个属性访问方法:getName(),一个属性更改方法:setName(String name)。
2、继承:通过继承已存在的类可以复用这个类的属性和方法,被继承的类称为父类,继承的类称为子类,子类可以创建自己特定功能的代码,父类一般保存的是通用的方法及属性。继承通过extends关键字实现。
继承示例:
// 备注:class可以定义多个类,但只有一个public类,而且public修饰的类名称要和文件名称一致。 public class BookTest{ public static void main(String[] args) { System.out.println(new HistoryBook().getName()); } } class HistoryBook extends Book{ /** * 发生日期 */ private LocalDate happenDate; protected LocalDate getHappenDate() { return happenDate; } public void setHappenDate(LocalDate happenDate) { this.happenDate = happenDate; } }
上面HistoryBook是Book的子类,在main方法里可以直接通过HistoryBook对象获取书名,这个是HistoryBook类中没有的属性,但是因为有继承,它可以调用父类所有的public,protected,default修饰的方法。
3、多态:一个变量引用可以指向多个实际类型的现象称为多态。多态的形成建立在继承(extends)/实现(implements)上,重要的一点是父类引用指向子类变量,但不能把父类引用赋值给子类变量。
多态示例:
// 父类引用指向子类,形成多态 Book book = new HistoryBook(); // 报错,原因:不能把父类引用赋值给子类,因为不能确定父类的具体类型,父类可能是A extends Book,也可能是B extends Book,不能把A或B强制转成HistoryBook,因为它们两之间是没有任何联系的。 HistoryBook historyBook = (HistoryBook) new Book(); // 这里是正常运行的,因为book其实指向的是一个HistoryBook的对象,这里是可以强制转换的。 HistoryBook hb = (HistoryBook) book;
以上是Java对象是什么?Java对象的介绍(代码示例)的详细内容。更多信息请关注PHP中文网其他相关文章!

在使用IntelliJIDEAUltimate版本启动Spring...

在使用MyBatis-Plus或其他ORM框架进行数据库操作时,经常需要根据实体类的属性名构造查询条件。如果每次都手动...

Redis缓存方案如何实现产品排行榜列表的需求?在开发过程中,我们常常需要处理排行榜的需求,例如展示一个�...

将姓名转换为数字以实现排序的解决方案在许多应用场景中,用户可能需要在群组中进行排序,尤其是在一个用...

电商平台SKU和SPU表设计详解本文将探讨电商平台中SKU和SPU的数据库设计问题,特别是如何处理用户自定义销售属...

在Idea中如何设置SpringBoot项目默认运行配置列表在使用IntelliJ...


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

SublimeText3 Linux新版
SublimeText3 Linux最新版

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

禅工作室 13.0.1
功能强大的PHP集成开发环境

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。