类与对象

来源:互联网 发布:linux chown r 777 编辑:程序博客网 时间:2024/04/28 20:43

Java是一种面向对象的程序设计语言(Object Oriented Programming:OOP),面向对象的程序设计语言中有类和对象的概念,它们在概念上有什么区别呢?

这往往是一个令面向对象的初学者感到迷惑的问题。

下面的解说虽然针对的是Java语言,但对所有面向对象的程序设计语言都通用。

什么是类


在面向对象的程序设计语言中,类是对一类“事物”的属性与行为的抽象。
举一个浅显的例子。Person(人)是对地球上所有具有特殊智能的生物包括你,我,他,张三,李四等的抽象。
“你”,“我”,“他”,“张三”,“李四”等等都属于“人”这一类所包含的个体。

Java语言中对类Person的定义往往如下:
public class Person {
    private String name;    //属性:姓名
    private int height;    //属性:身高
    private int weight;    //属性:体重


    public Person() {}
    public Person(String name, int height, int weight) {
        this.name = name;
        this.height = height;
        this.weight = weight;
    }

    //... some methods...

    public void doSth() {    //行为:
        //... do something
    }
}


什么是对象


简单一点说,对象是类的具体的个体。比如,张三是类Person的一个对象。Person可能存在无数个对象(就好像地球上存在数十亿人一样)。

Java中,对象的创建可以使用new来创建一个对象。比如:
Person zhangsan = new Person("Zhangsan", 170, 65);    //创建对象:“Zhangshan”
zhangsan.doSth();    //对象行为:对象自己发出行为


类和对象的关系


类和对象的区别
1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)”这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。
2,对象是类的一个具体。它是一个实实在在存在的东西。
3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。

类和对象的关系图: