数据类型 分类: 基本类型:4类8种 引用类型:类,接口,数组,抽象 区别: 基本数据类型存在于栈内存中,而引用数据类型存在于堆内存中。 引用数据类型在栈内存存储的是对象的内存地址,这个地址指向堆内存中的对象
栈内存:用于存储局部变量,当数据使用完,会自动释放。 堆内存:所有new出来的实例都放在堆内存中,每new出来的东西都有地址值。 本身是一个十进制,显示的时候是一个16进制值。 特点: 基本数据类型:形式参数的改变对实际参数没有影响 引用数据类型:形式参数的改变直接影响实际参数 Java中只有值传递,引用类型传递的是地址值
栈内存:先进后出
有没有真正意义上的引用传递: 没有真正意义上的引用传递, 基本数据类型运算传递的是变量的值,”引用拷贝” 引用数据类型运算传递的是变量的内存地址值。 实际是根据地址值,对堆内存中的数值进行操作。
类 定义:一种抽象的概念,是相关的属性和行为的一种集合,它描述了同一种事物的共同特征。 组成:成员变量(属性)、成员方法(行为)、构造函数(初始化对象)
对象 定义:现实生活中某种事物的具体存在,一种具体的表现形式,是类的具体表现形式。 使用场景:要使用某个类的功能时,则需要调用对象。调用某个对象的任何非静态方法时,该对象必须首先需要被创建。
面向对象 四大特征: 多态、继承、封装(抽象)
实例:面试官 面试 面试者 面向过程:面试(面试官,面试者); 面向对象:面试官.面试(面试者)。
定义:以对象为基础、注重结果、基于面向过程的一种编程思想,它可以让行为的执行者转 变为指挥者,将复杂的问题简单化,同时也比较符合人们的思维习惯。 面向过程 以函数为基础,完成指定的功能,强调的是过程。 面向对象 以对象为基础,完成指定的功能,强调的是对象。
特点: A:一种更符合人们思考习惯的思想 B:可以将复杂的事情简单化 C:将程序员从执行者转变为指挥者
如何操作才能更符合面向对象的思想: A:分析该系统中包含哪些对象 B:明确每个对象可以做什么,有哪些功能 C:明确各对象之间的关系
成员变量:属性(变量) 成员方法:行为(函数)
成员变量和局部变量 成员变量:定义在类中,方法外的变量 成员变量和局部变量的区别: A.定义位置区别: 成员变量在类中方法外 局部变量在方法中,或者方法的形式参数 B.初始化值的区别: 成员变量有默认初始化值 局部变量没有默认初始化值,需要初始化才能被调用。 C.存储位置区别: 成员变量 存储在堆中,随着对象的存在而存在,随着对象的消失而消失 局部变量 存储在栈中,随着方法的调用而存在,随着调用完毕而消失。 D.访问顺序区别: 首先在局部范围内寻找,使用局部变量; 如果没有相应的局部变量,则在成员变量中寻找。 采用“就近原则” 在堆内存中的变量一般系统有默认初始化值 在栈内存中的变量不会有初始化值,需要自定义
匿名对象 定义:没有名字的对象 使用场景: A. 当对象方法仅进行一次调用时 B. 可以作为实际参数进行传递 public void print ( Student s ) { s . show ( ); }
Student s = new Student ( ); s . show ( ); new Student ( ) . show; // 匿名对象,没有命名
|