学了快半个月了,终于学到了Java语言的关键了。为什么这么说呢?因为以前我自学过c++,后来因为工作的原因,基本用不到。不过在那个时候就已经了解到了Java照比C++的强大。主要就体现在了面向对象的这个设计思路,而C++则更侧重于面向过程。就像老师讲的,什么事儿都要自己去做多累啊,为什么不找些能帮我做这些的人去做我要做的事呢,Java就运用到了这个从执行者变成指挥者的思路。在我看来,面向对象就是Java的魂。 类与对象: 既然说到面向对象,那么就一定要有对象了。什么是对象,那就是某一些具有一定特征属性的实实在在的个体,而类是什么呢?就是这些不同的个体所共有的特性。 面向对象的特征:封装、继承、多态。 (这个就算背也要背下来,否则出去说自己学Java,人家都不能信。。。) 封装:(Encapsulation),是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。 (至于继承和多态。。。我还没学到呢。。。JavaSE自学心得--基础3 - 鬼影归来 - 寒窗) private 既然要将属性隐藏,就要用一个操作来实现,就是用这个private关键字。它的定义是:将属性私有,使其只在本类中有效,不可被外部调用和更改。它是一个修饰符,所以一般是加在数据类型前面的。但是如果私有了以后,外部还需要对它进行操作,因为一个对象的属性是需要从对象创建以后去分别定义,用以区分,所以一般成员变量被私有以后,都会对外提供两个访问方法,通常是:设置(set)和获取(get)。 构造函数:构造函数是类中一个很特殊的函数,它的格式是:函数名(){}; 这个函数名与类名是一致的。构造函数的作用是对建立的对象进行初始化,也就是说如果一个对象被创建,那么首先要执行的就是构造函数。这里有个小知识点,那么就是如果创建一个类以后,不想让外部用户建立本类中的对象,那么可以讲构造函数用private私有化。 构造代码块:给所有对象进行统一初始化。格式:{执行语句;} 这个东西很少用到。 this关键字:它看上去是用于区分局部变量和成员变量同名的情况使用的。实际上它的作用是代表它所在函数所属的对象。再简单点说就是哪个对象调用了this所在的函数,那么它就代表哪个对象。 static关键字:这是一个修饰符,用于修饰成员变量或者成员函数的。当成员被static修饰后,就多了一个调用方法,可以被类名直接调用。要注意:它是随着类的加载就已经存在在了方法区内,并且它优先于对象存在。被它修饰的成员,就相当于所属这个类中的对象的一个共有属性,这个属性不会被更改。静态函数只能访问静态的成员,也就是说明静态函数内部不能有this、super等关键字。 静态代码块:随着类的加载而执行,只执行一次,优先于主函数执行。 最后一个关键点:创建一个对象,进行的初始化过程。(这个是完全按照老师的所写,说实话,看每一条都能理解,只是到了自己去想还是有些不深刻。) 1,因为new用到了class类,所以会找到这个类文件并加载到内存中。 2,执行该类中的static代码块(如果有的话),给类进行初始化。 3,在堆内存中开辟空间,分配内存地址。 4,在堆内存中建立对象的特有属性,并进行默认初始化。 5,对对象的属性进行显示初始化。 6,对对象进行构造代码块初始化。 7,对帝乡进行对应的构造函数初始化。 8,将内存地址赋给栈内存中的变量。 |
|