本篇文章继续上一篇文章,讲到对象、封装、构造的方法
今日内容:
对象三大特征---封装文章目标:
能够明确对象的关系能够掌握类的定义格式标题跟上一篇文章1.4对象的使用格式
创建对象:
类名对象名= new 类名( );
使用对象访问类中的成员:
对象名.成员变量对象名.成员方法();
对象的使用格式举例:
成员变量的默认值:
1.5类与对象的习题:
定义手机的类,大家自己先做,做完后可以对照答案查错哦~
定义测试类:
1.6对象内存图:
一个对象,调用一个方法内存图:
通过上图,我们可以理解,在栈内存中运行的方法,遵循“”先进后出,后进先出“的原则。变量p指向堆内存中的空间,寻找方法信息,去执行该方法。但是,这里是有问题存在的,在我们创建多个对象的时候,如果每个对象内部都保存一份方法信息,这就非常浪费内存了,因为所有对象恶方法信息都是一样的,那我们应该如何解决这个问题呢?看图:
两个对象,调用同一方法内存图:
对象调用方法时,根据对象中方法标记()地址值,去类中寻找方法信息。这样的话,就算是多个对象,信息方法只能保存一份,节约内存空间。
一个引用的话,下面是作为参数传递到方法中内存图:
引用类型作为参数,传递的是地址值。
引用类型作为参数,传递的是地址值。
1.7成员变量和局部变量的区别
变量是根据定义位置的不同,我们给变量起了不同的名字。我们来看一下下图:
在类中不同的位置不同,重点!
成员变量:在类中的,在方法外
局部变量:方法当中或者是放大声明上(形式参数)
作用范围不一样,重点!
成员变量:这里是有默认值
局部变量:这没有默认值。必须先定义,然后赋值,最后使用
在内存中的位置不同,这里只需了解即可
成员变量:堆内存
局部变量:栈内存
声明周期不同,这里只需了解
成员变量:随着对象的创建才存在的,随着对象的消失而消失的
局部变量:随着方法的调用而
二、封装
2.1封装概述
面向对象编程语言是对我们客观世界的模拟,客观世界当中我们成员变量的都是隐藏在对象内部的,外界无法直接操作和修改的。封装是可以被认为是一个保护屏障,防止这个类的代码和数据被其他类随意访问。要访问该类的数据,必须要通过指定的方式。当时的封装是可以带代码更加容易理解和维护的,也加强了代码的安全性。
原则
将属性隐藏起来,若需要访问某个属性,提供公共方法对其的访问。
2.2封装的步骤
使用private关键字来修饰成员的变量。对需要访问的成员变量,提供对应的一对getXxx方法、setXxx方法。2.3封装的操作--private关键字
private的含义
private是一个权限修饰符,代表最小的权限。可以修饰成员变量和成员方法。被private修饰后的成员变量和成员方法,只在在本类中才能访问。provate的使用格式
private 数据类型变量名;
使用private修饰成员变量,代码如下:
2.提供getXxx方法/setXxx方法,可以访问成员变量,代码如下:
留言与评论(共有 0 条评论) |