从面向对象开始,开始对每天在课堂上学过的知识用自己的话进行总结,而不是去看笔记来发表。
一、什么是面向对象?
面向对象是一种思想,它是基于面向过程的。那么什么是面向过程了?将要解决的问题通过函数一步一步来实现,强调整个过程。比如自己去买电脑,首先自己在网上查找电脑信息,去电脑店寻找电脑,然后与店员谈价格等等,都是在强调一个个过程。若是自己对于电脑知识不懂,也就相当于遇到了困难的问题。一般情况下,人们遇到了问题,往往会有求助于能够解决问题的人的习惯,为什么会这样做?因为这样可以让事情变得简单化。还是回到刚才买电脑的例子,我不懂电脑知识,我会找我的朋友帮忙,让他去帮我买电脑,因为他具备熟悉电脑的这个功能。我通过调用我朋友熟悉电脑的功能,让他去帮我买电脑,而我不需要查找电脑信息,不需要去电脑店,不需要与店员去。整个过程就是一个面向对象,把要解决的问题封装成一个对象,通过调用对象的功能来实现。让我自己从一个执行者变成了指挥者。
注意:在面试时,还可以以现场的环境来举例来解释面向对象。
二、类和对象的区别
类是对某一类事物的抽象描述,包含属性和行为,属性就是代码中类中的成员变量,而行为就是代码中类中的成没方法;如人类,动物类等
对象就是现实生活中该类中的具体事物;人类中的男人,女人;动物类中的狗,猫等。
类是对象的模版,对象是类的一个个体或实例。
三、成员变量和局部变量的区别
(1)在类中的位置不同
成员变量定义在类中;局部变量定义在方法中或方法声明上;
(2)内存中的位置不同
成员变量定义在堆内存中,局部变量定义在栈内存中;
(3)生命周期不同
成员变量随着对象的创建而存在,随着对象的消失而消失;
局部变量随着方法的调用而存在,随着方法的调用完毕而消失;
(4)初始化值不同
成员变量有默认初始化值,整型的是0,浮点型的是0.0,字符型的是空字符,也就是\u000,引用类型的是null
局部变量没有默认初始化值,必须先定义,赋值才能使用
四、匿名对象
定义:
没有名字的对象
好处:
匿名对象调用完毕时就是垃圾,可以被垃圾回收器回收。
应用场景:
(1)当方法只被调用一次时,可以使作匿名对象
(2)匿名对可以作为实际参数传递
注意:
(1)匿名对象调用成员属性是无意义的,因为它在堆内存中new一个对象后,因为没有被引用,会变成垃圾。
(2)有名对象调用两次方法和匿名对象调用两次方法的区别:
Student s = new Student();
s.show();
s.show();
这是指s对象调用两次方法
new Student().show();
new Student().show();
这是指创建两个对象,分别调用show()方法。所以匿名对象多次调用成员方法是无意义的。
|
|