类于对象的理解
类 :是指描述一类事物,或者看成是一个分类, 例如人类、车类、星球类,
对象 : 是指具体的个体(也叫实例-instance), 例如马云、王石、老郑、马云的迈巴赫、王石的切诺基、老谭的二八自行车、地球、火星等等。
人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象所属于的某一类事物都是由哪些部分组成的。
通常都会将对象划分为两个部分,即动态部分【行为】与静态部分[描述]。//.属性
①静态部分:顾名思义就是不能动的部分,这个部分被称为“属性”,任何对象都会具备其自身属性,如一个人,它包括高矮、胖瘦、性别、年龄等属性。
②动态部分:然而具有这些属性的人会执行哪些动作也是一个值得探讨的部分,这个人可以哭泣、微笑、说话、行走,这些是这个人具备的行为(动态部分)
人类通过探讨对象的属性和观察对象的行为了解对象。、
静态部分:属性
动态部分【行为】:属性
如何设计类【从代码的角度】
①java中的类,就是类!用来描述一类事物,任何事物包含:静态属性,动态属性
java中的类就是用来描述一类事物!
②通过设计类,可以用来描述一类事物
③如何设计:
静态属性[描述]:成员变量[成员字段]
动态属性[行为]:方法
设计学生类:语法: |
class Student{//描述了学生这一类的事物
String name;//静态属性【成员变量 可以不用初始化值】姓名
int age;//静态属性年龄
void eat(){//动态行为:可以完成一定的事情,做一定的功能
}
}
用来描述一类事务的
类规范书写:
- 类名首字符大写; Student
- 类名必须具有意义;
- 必须写注释;
示例 : 设计一个学生类(模板)) |
class Student{
String name; // 姓名
int age; // 年龄
....................................
void eat(){}
void sleep(){}
对象的创建
1.如何创建对象
暂时 : new 类名(); --------->相当于学籍卡模板复印件(没有具体的学生资料)
2.给对象字段赋值
注:复制一份模板相当于创建了一个对象:给该对象描述静态属性的字段赋值:用于描述一个具体的学生对象
1)定义一个变量存储数组的对象的地址,然后使用变量等同于使用对象
①使用int 可以接收Student对象吗?
②使用String来接收Student对象可以嘛?
3.堆栈内存图肥西代码(重点)
下面使用堆栈内存图来解释一下上面代码的流程和存储。
① 每创建一个对象都会在堆内存中开辟一块空间,并且这块空间中具有和类(模板)中一样的 成员。
② 每一个对象都被栈中的一个变量所指向,所以操作栈中的变量(s)就如同操作堆中的对象。
③ s.name = "小明";其实是把字符串值赋值给s变量指向的堆中的name字段上的,而不是设置给 类的,所以我 们在分析代码的时候,看到new Student()对象应该立马想到在堆中有 一个对象。
总结:
①如何创建对象:
类型 变量名 = new 类名() 比如 Student stu = new Student();
②给对象赋值 和取值:
赋值-->对象名.字段名 比如 stu.name=”Xxxx”;
取值:--》对象名.字段名 比如 stu.name
③理解对象 堆栈图