黑马程序员———面向对象(一)

                                              -----------android培训java培训、java学习型技术博客、期待与您交流!------------ 


一、面向对象的概述:

   1、面向对象是相对面向过程而言。

  2、面向对象和面向过程都是一种思想。

  3、面向过程强调的是功能行为。

  4、面向对象将功能封装进对象,强调具备了功能的对象。

  5、面向对象是基于面向过程的。

 

 

二、面向对象的三个特征:封装,继承,多态。

 

 

三、类和对象的关系:

       类就是:对现实生活中事物的描述。

       对象:就是这类事物,实实在在存在个体。

       映射到java中,描述就是class定义的类。

       具体对象就是对应java在堆内存中用new建立实体。

       属性对应是类中变量,行为对应的类中的函数(方法)。

       其实定义类,就是在描述事物,就是在定义属性和行为。属性和行为共同成为类中的成员(成员变量和成员方法)。 

 

 

 四、成员变量和局部变量:

     1、作用范围:

        a、成员变量作用于整个类中。

        b、局部变量变量作用于函数中,或者语句中。

  

    2、 在内存中的位置:

        a、成员变量:在堆内存中,因为对象的存在,才在内存中存在。

        b、局部变量:存在栈内存中。

 

    3、成员变量有初始化值,而局部变量没有。 

 


五、匿名对象

  1、匿名对象使用方式一:

        当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。如果对一个对象进行多个成员调用,必须给这个对象起个名字。

 

  2、匿名对象使用方式二:

        可以将匿名对象作为实际参数进行传递。

 

 

六、封装

       封装是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。


       注意:封装的好处如下

                  1、将变化隔离。

                  2、便于使用。

                  3、提高重用性。

                  4、提高安全性。

 

 

七、构造函数:

     特点: 

         1.函数名与类名相同。

         2.不用定义返回值类型。

         3.不可以写return语句。


     作用:给对象进行初始化。

 

     注意:a.当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数。

                b. 当在类中自定义了构造函数后,默认的构造函数就没有了。

                c.构造函数是在对象一建立就运行。给对象初始化。而一般方法是对象调用才执行。

                d.一个对象建立,构造函数只运行一次。而一般方法可以被该对象调用多次。

 

 

 八、构造代码块:

      1、作用:

                a、给对象进行初始化。

                b、对象一建立就运行,而且优先于构造函数执行。

 

      2、和构造函数的区别:

               a、构造代码块是给所有对象进行统一初始化,而构造函数是给对应的对象初始化。

               b、构造代码快中定义的是不同对象共性的初始化内容。 

 

 

 

 九、this关键字

        this代表其所在函数所属对象的引用。换言之,this代本类对象的引用。


        this的应用:当定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this来表示这个对象。但凡本类功能内部使用了本类对象,都用this表示。 

 



十、Static关键字:

     static特点:

       1、随着类的加载而加载。也就说:静态会随着类的消失而消失。说明它的生命周期最长。

       2、优先于的对象存在明确一点:静态是先存在。对象是后存在的。

       3、被所有对象所共享

       4、可以直接被类名所调用。

 

 

十一、实例变量和类变量的区别

   1、存放位置:

                        类变量随着类的加载而存在于方法区中。

                        实例变量随着对象的建立而存在于堆内存中。

 

  2、生命周期:

                        类变量生命周期最长,随着类的消失而消失。

                        实例变量生命周期随着对象的消失而消失。

 

 

十二、  静态使用注意事项

     1,静态方法只能访问静态成员。非静态方法既可以访问静态也可以访问非静态。

     2,静态方法中不可以定义this,super关键字。因为静态优先于对象存在。所以静态方法中不可以出现this。

     3,主函数是静态的。


     注意一:静态利弊:

                利处:对对象的共享数据进行单独空间的存储,节省空间。没有必要每一个对象中都存储一份,可以直接被类名调用。


                弊端:生命周期过长。访问出现局限性。(静态虽好,只能访问静态。)

 

     注意二:什么时候使用静态变量和方法:

                   1、当对象中出现共享数据时,该数据被静态所修饰。对象中的特有数据要定义成非静态存在于堆内存中。

                   2、当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。 

 

 



十三、静态代码块:

 

格式:


static
{


 静态代码块中的执行语句。


}


特点:a.随着类的加载而执行,只执行一次,并优先于主函数。


           b.用于给类进行初始化的。
 

 

十四、 主函数

      主函数是一个特殊的函数。作为程序的入口,可以被jvm调用。

      1、public:代表着该函数访问权限是最大的。

      2、static:代表主函数随着类的加载就已经存在了。

      3、void:主函数没有具体的返回值。

      4、main:不是关键字,但是是一个特殊的单词,可以被jvm识别。

      5、(String[] arr):函数的参数,参数类型是一个数组,该数组中的元素是字符串。字符串类型的数组。

      6、主函数是固定格式的是为了jvm识别。

      7、jvm在调用主函数时,传入的是new String[0];



     总结:知识点多,要从一些实际例子来理解和运用面向对象的思想。(之前把笔记写本子上,现在整理到博客中,又温习了一遍,加油!)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值