2020-06-11 JAVA类 属性 和 面向对象编程

面向对象编程:强调过程 洗衣服倒洗衣粉 搓洗 甩干 亲历亲为

面向过程编程:强调用一定方法完成想要的结果,我们找了一个女朋友把衣服拿到干洗店,放入洗衣机中

我们面向过程按照我们想要的格式打印了数组



面向对象的三大特征

1.封装性

2.继承性

3.多态性


类和对象 

【类】是一系列相关【属性】和【行为】的集合,用一系列的属性特征和行为特征来描述一类事物。可以看作是一系列实例的模板。

类和对象的关系   类似于图纸和产品的关系

下来我们举一个例子来创建一个【学生类】

public class 类名称{    数据类型   成员变量=信息;

                                        public void 行为名称(){   语句; }

}

1.成员方法没有 static修饰符,是成员方法

2.直接把变量写在类里而不是方法里,就是成员变量

我们通过成员变量创建了学生类

其中存储了信息学生姓名 huangyid  学生年龄 18 ,还有学生的行为 :学习 睡觉

接下来我们创建一个对象


我们把类写在同一个包下的student文件

我们创建一个对象,写在practice_student

步骤

1.导包 

import 包名称.类名称;

如果类和对象在一个包下,不用import

2.创建

类名称 对象名(自己创立)=new  类名称();

我们通过student类在堆区new了一块内存;

3.使用

对象名.成员方法();


对象名.成员变量


我们实践一下 创建一个手机类


我们day06包下创建类phone

我们在day05包下创建了实例demo01phone

看下phone类

创建实例

类和实例在内存中的表示方法

进栈 压栈 后来居上

栈区 程序运行调用方法 后来居上 运行释放 x1 x2 x3 最后程序终止

堆区  new的成员变量和工作区方法的地址存在堆区调用

工作区 两个文件的class的方法和成员变量存放在工作区

我们程序的主调程序main方法在栈区运行,

当我们在栈区运行一个程序的时候,先从方法区调出方法地址,再到堆区找到成员变量和方法的地址,最后一起出栈到栈区,运行方法。  依次进栈并且x掉释放。



创建两个phone类实例的内存图

我们通过一行代码来改变输出结果

这次我们把one实例的地址赋给了two,此时我们只需要再栈区将one的地址复制,并修改堆区new的成员变量。最后进栈运行。最后出栈将main结束释放。

将类作为参数传入方法

我们要注意两点

第一我们传入的参数 phone param 将phone的地址作为参数

将对象作为参数传入方法的内存表示图

首先我们将两种方法和自己构建的方法method写入方法区

我们在将new的实例信息存放在堆区

在栈区我们将调用method方法,并将实例的地址0x666传入method方法.

最后完成实例作为参数传入方法

将对象作为返回值


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。