java基础06面向对象

面向过程:动作的执行者

面向对象:1动作的指挥者。2是人们思考习惯的一种思想,3使复杂的事情简单化,

                    不在强调过程,而是强调对象,找到了对象,其实就找到了这些功能

                     面向对象:找所需功能对象,创建对象,维护对象之间的关系

                     

面向对象语言:有三个特征。

      封装,继承,多态。

类与对象之间的关系

      计算机语言开发,其实就是不断用计算机语言来描述现实生活中的事物

      对于java语言,它描述事物是通过类体现的

类:就是某现实事物的描述共性的

      类其实就是一组对象的共性属性和行为的一个抽象,

对象:就是该事物具体实实在在存在的个体。   

      描述任意一类事物,其实就是在该类事物的属性和行为。


如何创建该类对象呢?

        java中通过new关键字来创建实体,实体其实就是用来封装具体数据使用的,如数组就是,对象也是。

       例如:Car c=new Car();//通过car类创建了一个具体对象,该对象如何使用呢,为了方便使用该对象,就给该对象起了个名字,

                     等号左边:定义了一个变量,是car类型的,而car是一个类,所以c是类类型变量,是一种引用类型变量(有数组,类,接口)

 类类型变量一定指向对象,c.run();       //指挥车运行,调用格式:对象.对象成员

                                                 c.color="red";   //给具体的属性赋值;


类中的属性称为成员变量

定义在函数中的变量称为局部变量

成员变量和局部变量的区别。

1:作用范围:

        成员变量:定义在类中,作用于整个类

        局部变量:只在他所属的局部大括号内有效,


2;存储情况:

      成员变量:存储在堆内存中,随着对象的存在而存在。

                         当对象变成垃圾被回收时,该对象中的成员变量会消失

      局部变量:存储在栈内存中,当方法被调用,或者语句被执行的时候才存在。

                           当方法运行完毕,或者语句运行完毕时,局部会被自动释放

    所以成员变量也称之为实例(对象)变量


3:初始化情况:

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

       局部变量:必须手动初始化后,才可以被使用。


匿名对象:没有名字的对象,是定义对象的一种简化形式

                    使用注意:1,当对象方法进行一次调用的时候,可以使用匿名对象对代码进行简化。

                                                为什么只调用方法,而不调用属性呢?因为匿名对象调用属性没意义。

                     Car  c=new Car();

                     c.run();

                     简写: new Car().run();

                                        2:匿名对象可以使用实际参数进行传递。

                   

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

private:是一个权限修饰符:只能修饰成员(成员变量和成员函数),私有的成员只在本类中有效。

                 当成员私有后,提高了安全性,但是访问权限降低了。

                 这时可以通过对外提供公有方法的形式对其进行访问,

                 这样的好处是,可以在方法中对成员变量的访问进行控制。

    私有就是封装的一种体现形式

   私有仅仅就是一种体现形式而已。


通常将成员变量私有化,并通过提供set和get方法对其进行设置和获取。

          set方法返回值类型往往是void

          get方法返回值类型往往是获取的成员变量类型相同。

    可以对数据进行控制。

  

方法的定义规范,多个单词组成时,首个单词首字母小写,后面的首字母大写。


构造函数:

         特点:1:函数名与类名相同

                     2:不用定义返回值类型

                      3:没有具体的返回值。

  例如:class Person{

                                    Person()

                                     {

                                    

                                     }

                                     }

 /构造函数在对象建立时就被直接调用,

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


一般函数和构造函数

   1:

    一般函数:用于定义对象应该具备的功能

     而构造函数定义的是,对象在调用功能之前,在建立时,应该具备的一些内容,也就是对象的初始化内容

  :2:构造函数是在对象调用时被调用,给对象初始化,在调用后就不在调用了。只执行一次。

           一般函数是对象建立后,当对象调用该功能时才会执行。  

当类中没有定义构造函数时,系统会自动类加上一个空参数的构造函数。

在一个类中可以定义多个构造函数,已进行不同的初始化

多个构造函数是以重载的形式存在的。   


当局部变量和成员变量重名时,    为了区别。

 可以用一个this关键字

this关键字代表的是对象的引用,也就是指向一个对象,

指向哪个对象呢?      

简单说:那个对象调用this所在的函数,this就代表哪个对象。 


当对一个对象进行多次初始化动作执行时?

就需要用到,构造函数之间的调用,

   构造函数之间调用也是需要使用this关键字。 

this语句只能定义在构造函数的第一行,

因为初始化工作必须先完成。            

{

int x=0;

System.out.println(x);//局部代码块,可以限定变量的生命周期

}

构造代码块:用于给所有对象进行初始化,它在构造函数之前执行

构造函数是给与之对应的对象进行针对性的初始化。


对象的建立以及初始化过程:

  Person  p=new  Person();//到底在内存中做了什么事情

  1,将Person.class文件加载进内存

2.如果p定义函数中,那么在栈内存中开辟了一个变量空间p

























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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值