传智播客:类和对象的关系和定义以及使用(附源码习题)

本篇文章继续上一篇文章,讲到对象、封装、构造的方法

今日内容:

对象三大特征---封装文章目标:

能够明确对象的关系能够掌握类的定义格式标题跟上一篇文章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 条评论)
   
验证码:

相关文章

推荐文章

'); })();