java之面向对象


第一讲:面向对象的特点

1.面向过程与面向对象:

              面向过程:是以函数为基础完成操作,强调的是过程,关注实现过程;

              面向对象:是以对象为基础完成操作,强调的是对象,关注实现结果;

2.面向对象的特点:

             A 面向对象更加符合人们的思考习惯。

             B 面向对象思想可以使复杂问题简单化。

             C 面向对象思想可以让我们从执行者变成指挥者。

          举例:我要吃饭,我如果要自己做,就相当于面向过程,这时,我自己要买菜,洗菜,切菜,炒菜。我如果去饭店吃的话就相当于面向对象,我调用了服务员的点菜功能,和厨师的炒菜的功能,我只需要池就行了。

第二讲: 类与对象

1.java语言中,最基本的单位是类,类就是用来体现事物的属性和功能的。

2.类由成员变量和成员方法组成。

               a:成员变量:用于描述类的属性;

               b:成员方法:用于描述类的行为(功能);

3.类与对象

              类:是属性和行为的集合,是一个抽象的概念;

              对象:就是类的具体的存在,体现;

第三讲:成员变量与局部变量

1.成员变量与局部变量的区别?

             a:成员变量定义在类中;

                    局部变量定于在方法上,语句中或者参数中;

              b: 成员变量在整个类中都有效;

                   局部变量只在自己所属的大括号中有效,大括号结束,变量也就失去了作用域;

              c: 成员变量存在于堆内存中,随着对象的存在而存在,随着对象的消失而消失;

                   局部变量存在于栈内存中,随着所属区域的运行而存在,随着所属区域执行结束而释放;

2.什么时候定义成员变量?

               当这个变量可以作为类的属性的时候;

3.注意事项:

               当使用变量的时候,首先在局部范围内找,有就使用,局部范围内没有,然后再在类中找。遵循就近原则。

举例:class Person

{

int age=20;

public voidgetAge()

         {

           int age=23;

           System.out.println(age);

           }

}

class PersonDemo

{

          public static void main(String[] args)

          {

          Person p=new Person();//创建一个人对象

           p.getAge();//输出打印的结果为23;

           }

}

第四讲  创建对象在内存中的变化

            Person  p=new Person();

1.先将硬盘上指定位置的Person.class文件加载进内存;

2.执行main方法时,将main方法从方法区调出,在栈内存中开辟了一个main方法的空间(压栈---进栈),然后在main方法的所属的栈区内存中分配一个变量p;

3.在堆内存中开辟一个实体空间,分配一个内存首地址值;

4.在该实体空间进行属性的空间分配,并进行了属性的默认初始化;

5.对空间的属性进行显示初始化;

6.进行实体的构造代码块初始化;

7.调用该实体对应的构造函数,进行构造函数初始化;

8.将首地址赋值给p,p变量就引用了该实体;

第五讲 匿名对象的使用

匿名对象的使用场景:

1.当对方法只进行一次调用的时候,可以使用匿名对象;

2.当对对象成员进行多次调用的时候,不能使用匿名对象,必须给对象起一个名字;

       匿名对象:用完之后就变成了垃圾,因为栈区没有变量指向该内存的地址;

举例:class Person

{

            public void show()

          

                System.out.println("匿名对象");

             }

}

class PersonDemo

{

               public static void main(String[] args)

                  {

                     new person().show();//匿名对象的使用

                   }

}



你可能感兴趣的:(java之面向对象)