## JAVA的类和对象 ##
最开始理解面向对象这个东西的时候我也很头痛,毕竟这个东西很抽象,不过理解起来其实很简单,JAVA是一门和人话比较相似的语言(个人理解,一般听不懂的时候都会让对方说人话不是233333),JAVA的创建对象调方法就可以理解为让一个对象去干活,干了什么活?想让他干什么活,·后面加什么方法.类则是对象的统称,你是人,我是人,大家都是人,人就是类,而你我等等的个体就是一个一个的对象,这就是JAVA的类与对象.
## JAVA的类结构 ##
JAVA中,想要声明一个类,class XXXXX{},XXXXX就是类名.
类中能包含一些东西,主要是方法和变量
类中能包含三种变量:局部变量,成员变量以及类变量
局部变量:声明在局部范围中(如一个方法中,代码块中),在栈内存中存储,超过了作用范围变量空间自动释放,没有默认初始值.
成员变量 : 声明在类中,在堆内存中存储,随着对象的建立而建立,随着对象的消失而消失,有默认初始值.
类变量 : 一般指由static修饰的变量,本质是全局变量,因为static修饰的变量随着类加载而加载,所有类的对象使用该变量都会使用同一个变量,实质是访问同一块内存空间.
## 成员变量和类变量的区别##
1.生命周期不同
成员变量是随着类的对象加载而加载,随着类的对象消失而消失;
类变量则是跟随类,随着类的加载而加载,随着类的消失而消失;
2.调用方法不同
成员变量仅能由类的对象调用;
类变量除了能被对象调用外,直接由类名调用也可以;
3.存储位置不同
成员变量存储在堆内存的对象中(随着对象被建立而创建);
类变量存储在方法区的静态区;
## 类中的构造方法 ##
类中的构造方法分为两种,无参构造和带参构造.
无参构造 : 没有参数的构造,一般就是类名()结束,但并不代表里面什么都没有,里面有一行被省略的super();
代表继承父类object,JAVA中的所有类都是object的子类.
带参构造:看类的成员变量,比如小狗类,有成员变量小狗的年龄age,小狗的颜色color,那么声明的时候就要写类名(age,color),里面要用this.age=age,this.color=color将传进来的属性赋给对象的成员变量,不过现在都流行类的属性私有化,提供公共的get/set方法进行修改,带参构造现在用的不多.
## JAVA创建对象 ##
new关键字
比如现在有一个类Father,想要创建一个Father的对象,怎么办呢?
Father father=new Father(); 其中的f代表对象的名字,尽量做到见名知意,这种类名的小写作为对象名蛮常用的.