这篇文章我讲述的是类与对象的关系,以及类与对象的创建过程以及在创建的时候内存的分配方式。
首先,我们先了解一下什么是类,什么是对象?
类——简单的说就是
对象的高度概括。
对象——对象是一个
类的具体表现。
类是所有具有相同特征的对象
抽象出来的总体
概括,也就是说类是只是一个概念,这个概念包括所有对象的共同属性和方法。对象是类的一个具体的实例,是
实实在在存在的。
也可以说,类包含了这个类所创建的所有对象的共同点。就像通常我们所说的人类。人类都有一定的属性(例如,我们都有名字,都有手有脚……),这个属性并不是人类特有的(比如,猩猩这个类,他们也都有手有脚……),但一定是全部的人所共有的——也就是说所有的人都有人类的属性。当然,每一个类也都有一定的方法(例如,人类都可以思考问题,可以吃饭,可以睡觉),但不一定是人类所特有的(比如,猩猩也可以做一些简单的思考,也可以吃饭睡觉等)。
在我看来,我觉得 类 用一句话说就是:具有相同特征(属性)和行为(方法)的任何事物都可以看做一个类。
对象 就是:某个类的具体实例,一个实实在在的事物,拥有类的特征和方法。
——这里先不考虑一些特殊情况。
现在,我们来说说在Java编程中类的创建以及在创建过程中内存的分配方式:
在Java中创建类的关键字是
class ,类名总收标识符的命令方式,但类名的第一个字母应该大写,这只是业内人士的一种规则,好处嘛当然也是大大的……
下面我们以一个例子来说明:
//创建一个Person类
class Person
{
//定义类的name和age属性
public String name;
public int age;
//定义一个类的简单的方法
public void say(){
System.out.println("I am SKY!");
}
}
这个类是创建完了,但这个过程内存是怎么分配的我还不清楚,其实我觉得这不是我们现在要考虑的问题,最重要的是下一步类的声明和实例化过程中内存是怎么分配的。
//我们再定义一个Person测试类PersonTest
public class PersonTest{
public static void main(String[] args){
//声明一个person1对象
Person person1 = null;//——>这个过程只是在栈内存开辟一块空间,存放person1的句柄
//对象的实例化
person1 = new Person();//——>这个过程是在堆内存开辟了一块空间,来存放person1的属性和方法(这块内存的首地址会被存放在person1在栈的内存中)
//
其实在这我也有部分不明白:就是这时的person1句柄是不是就是person1在堆内存的地址?
//调用say方法
person1.say();
}
}
运行这个程序,会输出:
I am SKY!
可能自己的表达能力有限,说的不够清楚,如有疑问,请留下来,我们一起探讨。
posted on 2010-10-14 00:03
tovep 阅读(136)
评论(0) 编辑 收藏