黑马程序员-JAVA学习日记-面向对象1

黑马程序员-学习笔记

 

黑马程序员_JAVA基础_面向对象1

 

------- android培训、java培训、期待与您交流! ----------

 

A:面向对象:

 1)面向对象是:相对于面向过程而言的,是基于面向过程的。

   面向过程:强调的是一种功能;

      面向对象:强调的是对象,即具有该功能的对象,我们有该对象完成功能,强调的是结果;

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

 2)面向对象思想:

   (1)面向对象是一种符合人们思考习惯的一种思想;

      (2)将复杂事情简单化

      (3)将程序员从执行者转化为操作者

      举例:比如去买电脑,找人帮忙买;就是面向对象

 3)面向对象的特征:

    (1)封装 (2)继承 (3)多态

B:类和对象的关系:

  1)类是用来描述事物的;对象是现实世界存在的事物。

  2)现实事物都是用属性和行为来描述,用java语言中用成员变量和成员方法来描述,就是:

    属性-----成员变量

       行为-----成员方法

  3)自定义类:class来定义一个类,它里面包括成员变量和成员方法

  4)自定义类

      class Car

        {

             int price;

             public void show()

             {

                    sop(price);

             }

        }

        创建对象:

             Car c = new Car();

             //使用属性

             sop(c.price);

             c.price = 1000;

            sop(c.price);

             //使用方法

             c.show();

        

      使用对象中的功能的格式:对象名.成员变量名;对象名.成员方法名();

      黑马程序员-JAVA学习日记-面向对象1_第1张图片

简单的内存图:如图

C:成员变量和局部变量的区别:

   1)作用域和存储位置

        成员变量:是随着对象的存在而存在,存储在堆内存中,随着对象的消失而消失,作用于整个类;

        局部变量:存在于方法和语句中,只有方法被调用或语句被执行才会存在,存储在栈内存中,当方法或语句执行完后,局部变量在栈内存中释放;

   2)初始值

        成员变量:在堆内存中都有默认初始值;

        局部变量:没有默认初始化值,被调用时必须手动给其初始化;

D:匿名对象:

   1)匿名对象,就是没有名字的对象。是对象的一种简写形式。

      2)应用场景

             (1):只一次调用类中的方法。

               Person p = new Person();

               p.show();

               //匿名使用如下

               new Person().show();

             (2):可以作为实际参数在方法传递中使用

              Person p = new Person();

              method(p);

              //匿名使用如下

              method(new Person());

 

              public static void method(Person p)

              {

                    p.show();

              }

E:封装:

   1)隐藏实现细节,对外提供公共的访问方式;举例:机箱

      2)好处:将变化隔离

                便于使用

                提高了复用性

                提高了安全性

      3)代码体现:private是一种权限修饰符,用于修饰(成员变量和成员函数),private修饰的成员只在本类中有效;

       private修饰的成员变量,要对外提供公共的setXxxgetXxx方法;

                class Person

                    {

                           private String name;

                           private int age;

 

                           public voidsetName(String n)

                           {

                                  name = n;

                           }

                           public StringgetName()

                          {

                                  return name;

                           }

                           public voidsetAge(int a)

                           {

                                  age = a;

                           }

                           public int getAge()

                           {

                                  return age;

                           }

                    }

             私有private只是封装的一种体现形式;

F:构造方法

      1)构造方法是用于创建对象,并进行初始化值的。

      2)构造方法的特点:      

             A:和类名相同 B:没有返回类型 C:没有返回值

      3)构造方法的注意事项:

             A:如果一个自定义类没有构造方法,系统会默认给出一个无参构造方法。

             B:如果一个自定义类提供了构造方法,那么,系统将不再给出无参构造方法;这个时候,你可以不使用无参构造方法;

             如果你想使用,那么,就手动给出无参构造方法。建议:一般情况下,我们的自定义类都要手动给出无参构造方法。

      4)构造方法和成员方法的区别

             A:格式区别

                    构造方法和类名相同,并且没有返回类型,也没有返回值。

                    普通成员方法可以任意起名,必须有返回类型,可以没有返回值。

             B:作用区别

                    构造方法用于创建对象,并进行初始化值。

                    普通成员方法是用于完成某个功能的。

             C:调用区别

                    构造方法是在创建对象时,用new调用的。

                    普通成员方法是由创建的对象调用的。

       5)成员变量赋值

         通过setXxx方法和构造函数

Gthis关键字:

     1)this关键字代表本类对象的一个引用,谁调用某个方法,在这个方法内部this就代表谁;

       2)this使用场景

          A:局部变量隐藏成员变量时; B:在构造方法中,调用其他的构造方法时,这个时候this(参数)必须作为第一条语句存在。

 

对自己说:学好基础也很重要哦!!!

 

------- android培训、java培训、期待与您交流! ----------  详细请查看:http://edu.csdn.net/heima/

 

你可能感兴趣的:(黑马程序员-JAVA学习日记-面向对象1)