一,面向对象概念
1.类型(类) 指一个名词概念,如:老师,学生,图书
2.引用(变量) 指引用具体概念实例的代词,如:某人、某物
3.对象(东西) 指具体概念的个体实例,如:张无忌这个人、
4.行为:方法
5.多态 行为或者引用,在具体情形下会发生变化的现象
比如:“一只动物”可以是“一匹马”、“一头驴”、“一只猴子”,多态的; “打”可以是“打酱油”、“打麻将”,“打人”,根据宾语发生变化,多态 的。
6.封装 :任何对象实例都是尽可能封装, 减少暴露,它的实现细节对你是透明的(看不到)。比如:只能看到汽车的壳子、轮胎等,看不到发动机。
7.继承 :概念的继承关系。
二.java类
1,Java类,是用来描述事物类型的 如:public class student{
}
2,类的声明,在“学生管理系统”中有概念:student
student的特征是:姓名,学号,班级,性别,年龄等
在Java中这样表示“student“这个事物类型:
public class student{
String name;
long id;//学号
String bj;
int age
}
注:”{}”花括号内的内容是类体
三,引用变量与对象的创建过程
public class StudentDemo{
public static void mian(string[] args){
Student student; //声明引用student
student=new Student();//创建对象
student.name="lis";
System.out.println(student.name);//lis
student.name="lwangwu";
System.out.println(student.name);//wangwu
}
}
计算机执行Java程序时会在内存中开辟一块栈内存(stack)空间。其实在程序运行期间,JVM迓开辟了一个堆内存(heap)空间。 栈内存空间的存储特点是“后进先出”,堆内存空间的存储特点和栈不同,类似于一盘散沙,随处可以“堆放”。
栈内存中的引用变量指向堆内存中的实例对象, 属性是有初始值的,我们将堆内存里的东西称为“对象”,对应现实世界的事物
在程序执行中堆内存中有两个对象,引用变量student指向新创建的对象 原来引用的对象等待垃圾回收。
三,java的内存管理与分配
1, 栈是一块Java使用内存区域,使用的方式:LIFO(后来者居上)堆也是一块Java使用内存区域,使用方式:随机分配。
2,局部变量与堆对象空间分配
Java局部变量和方法参数在栈中分配,大小是按照变量的类型分配
对象在堆中分配,按照类中声明属性(实例变量)分配空间
。
3. 变量类型与分配
变量分为:基本类型和引用类型
基本类型变量的空间大小:就是基本类型的空间大小,值是基本类型的值
引用变量的值是一个对象的地址值,引用变量通过地址引用了一个堆对象
引用类型变量的占用空间大小和值管理是“透明的(丌可看见)”由Java系统管理:变量占用空间以及值的管理,都是透明的。。。