示例:
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关键字实现。
继承示例:
上面HistoryBook是Book的子类,在main方法里可以直接通过HistoryBook对象获取书名,这个是HistoryBook类中没有的属性,但是因为有继承,它可以调用父类所有的public,protected,default修饰的方法。
3. 多态:一个变量引用可以指向多个实际类型的现象称为多态。多态的形成建立在继承(extends)/实现(implements)上,重要的一点是父类引用指向子类变量,但不能把父类引用赋值给子类变量。
多态示例:
以上是个人对java对象的理解,如有错误,欢迎指正。下一篇文章将阐述抽象和接口的概念。