欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JAVA对象

程序员文章站 2022-05-15 20:30:43
示例: 什么是对象  《JAVA编程思想》对于对象的定义是:将问题空间中的元素以及它们在方案空间的表示物称作“对象”。  1. 问题空间:实际解决的问题模型;  2. 方案空间: 计算机(机器模型)。  实际的问题在计算机(机器模型)中的表示称为对象。在上面示 ......

示例:

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对象的理解,如有错误,欢迎指正。下一篇文章将阐述抽象和接口的概念。