day5 面向对象
Posted Michael2397
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day5 面向对象相关的知识,希望对你有一定的参考价值。
面向对象的特征
封装(encapsulation)
继承(inheritance)
多态(polymorphism)
开发的过程:其实就是不断的创建对象,使用对象,指挥对象做事情。
设计的过程:其实就是在管理和维护对象之间的关系.
匿名对象
匿名对象:没有名字的实体,也就是该实体没有对应的变量名引用。
2.2匿名对象的用途
1,当对象对方法进行一次调用的时候,可以使用匿名对象对代码进行简化。
为什么只对方法,而不调用属性呢?因为匿名对象调用属性没意义。
如果对象要多成员进行多次调用,必须给对象起个名字。不能在使用匿名 对象。
2,匿名对象可以实际参数进行传递。
2:匿名对象的简单演示
1:new Car().run();
3:内存结构图
1:new Car().num=5;
2:new Car().clor="blue";
两个new 是两个不同的对象,在堆内存中有不同的空间,相互不相互干扰。
4:匿名对象的使用
1:当只使用一次时可以使用匿名对象。执行完毕到;后该对象就变成了垃圾。
new Car().run();
2:执行方法时,可以将匿名对象作为实际参数,传递进去。
封装
我们日常使用的电脑主机,把cpu、内存、主板等等都封装到机箱里面去。假如没有机箱的话的出现什么问题,主机、主板全部都散落在一处,然后开机没有开机按钮,那么需要我们直接操作接跳线才能把电脑开启。这样子的话假如操作不慎的话,会让机器损坏危险,那么假如用机箱封装起来的话,那么就不需要这样子做了。体现了封装的---安全特性。
你拿电脑去加内存,可以直接给电脑给维修的人,等他加好内存了之后。你拿到的还是那个机箱,里面发生了怎样子的变化你并不知道。封装的第二个好处-将变化隔离。
在机箱里面提供一个开机按钮,而不需要你直接使用跳线开机的话,体现了封装的—便于使用的特性。
只要机箱提供了一个开机的功能,然后无论这个机箱拿到哪里去,都可以使用这个开机的功能.体现了封装的---提供重复性的特性。
1、 没有封装
模拟问题
- 描述Employee类。定义姓名,工号,性别的成员变量,和工作的方法。成员使用public修饰。
- 创建Employee对象,对象.成员的方式进行赋值。最后该对象调用工作方法。
- 总结:如果不使用封装,很容易赋值错误,并且任何人都可以更改,造成信息的 不安全。
- 问题解决:使用封装
封装的实现
1:设置类的属性为private(关键字),不能使用对象名.属性名的方式直接访问对象的属性。
封装的好处
1:隐藏了类的具体实现
2:操作简单
3:提高对象数据的安全性
构造方法
1.我们人出生的时候,有些人一出生之后再起名字的,但是有些人一旦出生就已经起好名字的。那么我们在java里面怎么在对象一旦创建就赋值呢?
构造方法的作用:对对象进行初始化
构造函数与普通的函数的区别
- 一般函数是用于定义对象应该具备的功能。而构造函数定义的是,对象在调用功能之前,在建立时,应该具备的一些内容。也就是对象的初始化内容。
- 构造函数是在对象建立时由jvm调用, 给对象初始化。一般函数是对象建立后,当对象调用该功能时才会执行。
- 普通函数可以使用对象多次调用,构造函数就在创建对象时调用。
- 构造函数的函数名要与类名一样,而普通的函数只要符合标识符的命名规则即可。
- 构造函数没有返回值类型。
以上是关于day5 面向对象的主要内容,如果未能解决你的问题,请参考以下文章