面向对象VS面向过程
面向过程:具体每一个步骤和过程。代表语言就是C
面向对象:创建对象,使用对象
面向对象特征:封装,继承,多态
类与对象的关系与定义
比如说:人 他会有自身属性(身高,体重等),有行为(吃饭,睡觉,学习等)
我们可以将人抽取为一个类,属性对应的是java中的成员变量(定义在类中);行为对应的是java中的成员方法
person:
成员变量:hight,weight...
成员方法:eat,sleep,study...
那么我们就可以通过一个人的类来创建对象
person p=new person();
调用方法
p.eat();
调用属性
p.hight;
java最小的单位就是类
栈:存放的都是局部变量,不会为变量赋值,方法的执行都是在栈里
堆:存放的都是new出来的,会为变量赋值,引用变量的初始化值都是null,基本数据类型的值就是默认值
方法区:类的字节码文件是存放在方法区的class区,方法区中存放的都是唯一的东西,方法区里面还有一个static区,在创建对象时在方法区中的字节码文件中的没有被static修饰的成员变量会在堆中拷贝一份