您的位置:首页 > 编程语言 > Java开发

Java类与对象的一些想法

2016-03-07 16:06 363 查看
今天我就Java类与Java对象的区别,我这边简单说一下我个人的感受吧.
我们使用各种idea编写出来的'.Java'文件我们称之为一个Java类,我想你从来没有听说过有人叫它Java对象吧?顾名思义,类就是对一类事物或者一类对象的一个归类或者说划分.我们甚至可以说,'类'只是一个形容词,而'对象'就是这个形容词所形容的其中一个'实体对象'.(当然这么说可能不是很确切,为了便于理解).Java类中定义了很多构造方法,让我们在进行对象的实例化的时候可以有不同的选择.当然实例化出来的对象也就有所不同,这其中的差异由我们实例化的时候所使用的构造方法决定.我们程序运行时使用的是实实在在的存在的对象!(更确切的说是指向对象的句柄)而Java程序在运行前会对我们定义的Java类进行'装载-链接-初始化',以便我们后面对这个类的使用(实例化)做一些准备工作.
当然,我上面说'Java类只是一个形容词'以及'Java程序在运行时使用的是实体对象'这其实是一个并不是非常准确的说法,因为我们都知道Java里面有一个关键字 'static',大家都知道被static所修饰的变量或者方法,在使用的时候是不需要实例化对象的.只需使用类名+变量名/方法名即可.
另外,关于static我想做以下一些说明.
一个Java类其中包含以下几个模块:
1.成员变量
2.构造器
3.成员方法(成员方法里面可能还会包含成员变量)
我上面说了,被static关键字所修饰的变量或者方法是归属于类的,而非这个类的实例对象.没有被static修饰的对象或者方法均归属于类对象.所以,这就涉及到一个对象的使用问题?

static方法里面能否调用非static对象,非static方法能否使用static对象?我上面说了,static对象/方法归属于当前类,非static对象/方法归属于当前’对象’,对象是类的一份子,当然是可以使用static对象,反过来则不行(非static对象的调用必须是类的实例化对象,这就涉及到构造方法在构造对象的时候对对象的一些初始赋值工作,当然也包括static对象和非static对象);这里有些绕口,自己慢慢细细想想即能明白
这里的理解其实涉及到Java的初始化过程,这里我就不多赘述:
1. 编译器初始化所有的已分配的空间为二进制0
2. 执行父类静态代码 执行子类静态代码(在执行静态代码之前会对静态对象进行初始化工作)
3. 初始化父类成员变量
4. 初始化父类构造函数
5. 初始化子类成员变量
6. 初始化子类构造函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: