java面试必备面向对象三大要素
前言
是不是被标题忽悠进来了哈哈哈,既然来了就别走了,相信我下面绝对让你对java面向对象更好理解(全是个人理解勿喷,欢迎大佬在下面指教)
java对象
俗话说的好,只要有new(强行补坑哈哈哈),我就可以new出来无数个对象,还能天天面向对象(妈妈再也不用担心我找不到对象,当亲戚问我有没有对象时,我直接回答:对象多的数不过来,还得天天面向对象,愁死人喽哈哈哈)好了,开始进入正题了
Java对象如何创建和怎么成员调用?
直接贴上代码吧哈哈哈(有点懒)
//new出对象 student a=new student(); //给对象的属性赋值 a.name="张三"; //调用方法 a.show();
面向对象三大特征
封装
(一)定义: 将对象的状态信息隐藏在对象内部(设置成private),不允许外部程序直接访问对象内部信息,⽽是通过该类所提供的⽅法来实现对内部信息的操作和访问(我们用到了封装,public的get/set方法,赋值用set,获取值用get)。 (二)目地: 1.追求高内聚,低耦合 2.隐藏类的实现细节 3.防止不合理的访问 4.保证对象信息的完整性 5.便于修改错误 (如何封装,代码如下)
private String name; public String getName() { return name; } public void setName(String name) { this.name = name; }
继承
(一)作用: 突现类重复使用的手段(通过一个类的继承,来完成各种业务的需求)。 (二)特性: 1.子类通过extends来实现对父类的继承 2.子类可以调用父类中除private的属性和方法 3.可以进行方法重写(overreide) 4.子类可以添加独有成员 5.java中的继承属于[单继承机制] 6.每个类都默认继承一个Object类(祖父类)
相信肯定会有人问java不是单继承机制嘛?两个类不发生冲突嘛?
就相当你父亲上面肯定还有你祖父,属于继承一个类,并不会发生什何冲突(Object是最原始的类) (如何继承,代码如下)
public class Dog extends Pat{}
多态
1.基础: 引用变量有两个类型: (一):编译时类型:由声明变量时候使用的类型决定 (二):运行时类型:由实际赋给该变量的对象决定 2.定义: 多态就是编译时类型和运行时类型不一致 一个对象在内存中体现出多种不同的形态 3.相关问题? 强制类型转换与真实类型不区配(classCastException) 需提前使用instance of判断
想要有多态必须需要先继承
怎么使用多态,代码如下
Dog d=new Dog(); d.setName("大黄"); d.setAge("10"); d.eat();
在这里直接放脑图吧哈哈哈(别问为什么是试用模式,问就是穷)
为什么要使用封装(我直接在一个类里面写不可以么)?
倒是也可以这样写,但这样写是针对那些代码量少的项目(定义到类中的类叫内部类),如果代码量大那肯定就不行了,因为找bug太麻烦,必须拿出来封装写
为什么需要继承?
当一个类无法满足业务的需求时,就要考虑继承了(后面内容会讲接口)
多态的好处?
方便调用代码来完成某个业务的需求
this与super的区别/相像点
区别:this是指当前对象,super是父类对象 相像点: 1.使用起来都一样,可以调用一般属性和一般方法 2.放置在类成员的任意位置 3.调用方法时候来回调用 可能会产生运行时错误(StackOverflowError)
总结
后续文章更新会慢一点,因为要开始做项目了(再加上自己是组长鸭梨重大),运动会也马上开始了(得抓紧锻炼身体了哈哈哈),其实这一篇应该是昨天晚上发布出来的,由于是用手机写的刚开始写了保存了,后面有补充了许多,结果出来没保存,没办法只能重新熬夜补充,结果出来还是没有补充的内容,只能今天用电脑补充喽再发布了(结果补充了一星期),害,不过我相信一步一个脚印来,慢慢会好起来的,每天对自己说声加油(共勉吧,一起努力,顶峰见),方法竟然还可以克隆出来,这是什么神奇操作(记得收看下一篇哦哈哈哈哈)
分享Java里的一些遇到的问题与面试技巧