JAVA基础(六)面向对象

面向过程:
就是面向着具体的每一步步骤和过程,把每一个过程完成,然后由这些功能方法相互调用,完成需求。

                 代表:C语言

                 使用条件:需求单一或简单

面向对象:

就是不断的创建对象,使用对象,指挥对象做事情。将步骤和功能进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一起。

                  特点:更符合我们的思想习惯

                           可以将问题简单化

                           使得我们的角色从执行者变成了指挥者

  特征:封装、继承和多态。

我们学习编程,就是为了模拟现实世界的事物,实现信息化。使生活更加便利和美好。那么为了达到这个目的,我们首先要思考我们应该如何描述现实世界的事物。


事物有两个特性:属性和行为。属性就是该事物的特征,描述信息。行为则是该事物能够做什么,能够实现什么功能。

结合JAVA语言来看,JAVA语言中最基本的单位是类,我们可以通过一个类来体现事物。与之对应的,我们就可以用成员变量来对应事物的属性,成员方法来对应事物的行为。

类:

是一组相关的属性和行为的集合;定义类就是定义类的成员(成员变量和成员方法)。成员变量的定义在类中,在方法外。

创建对象的格式:类名 对象名 = new 类名();

创建对象的过程中,以创建一个学生对象为例:

          (1):加载Student.class文件进内存

(2):在栈内存为s开辟空间
(3):在堆内存为学生对象开辟空间
(4):对学生对象的成员变量进行默认初始化
(5):对学生对象的成员变量进行显示初始化
(6):通过构造方法对学生对象的成员变量赋值
(7):学生对象初始化完毕,把对象地址赋值给s变量

使用对象的格式:格式:对象名.变量名

使用成员方法:格式:对象名.方法名(...)

类中提供了两种给成员变量复制的方法,一种是set方法,一种是通过构造方法。

要输出成员变量值,可以通过get()方法,调用定义的很常用的show 方法。

成员变量和局部变量的区别:
         A:在类中的位置不同
                成员变量:在类中方法外
                局部变量:在方法定义中或者方法声明上
         B:在内存中的位置不同
                成员变量:在堆内存
                局部变量:在栈内存
         C:生命周期不同
                成员变量:随着对象的创建而存在,随着对象的消失而消失
                 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
          D:初始化值不同
                  成员变量:有默认初始化值
                  局部变量:没有默认初始化值,必须定义,赋值,然后才能使用。

需要注意的是: 局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

JAVA中的参数传递问题

首先看形参:形参中我们既可以使用基本类型也可以使用引用类型。

                      当使用基本类型时,形式参数的改变不影响实际参数

                      当使用引用数据类型时,形式参数的改变会直接影响实际参数。

                     当一个参数的形式参数是一个类类型,其实我们需要的是该类的对象作为形式参数。

匿名对象:没有名字的对象

    应用场景:a.为了调用一次方法的时候(仅调用一次)b.作为实参进行传递

封装:

指隐藏对象的属性和实现细节,仅对外提供公共访问方式。 是我们在JAVA中最常使用的一种思想

 优点:隐藏了具体实现的细节,提供了公共的访问方式。提高了代码的复用性,节省了空间和时间。提高了安全性。

原则:隐藏属性,提供公共方法来对属性进行访问。

private:是一个权限修饰符,可以修饰成员变量和成员方法,被修饰的成员只能在本类中访问,我们进场使用private来提供对应的get 和set 方法。

this:是当前类的对象引用,简单的说,他就代表当前类的一个对象,谁调用这个方法,这个this 就代表谁。这个关键字主要用于局部变量和成员变量相同时,局部变量隐藏了成员变量的问题。

static:

特点:被static 定义的成员变量或者成员方法,加载的时机很早,随着类的加载而加载。

          优先于对象存在,因为是随着类的加载而加载的,对象是后来new 出来的

          被类的所有对象所共享。(根据这个特点我们也可以看出,如果一个成员变量应该被所有对象共享,那他应该被定义成静             态的)

          可以通过类名直接调用。也可以通过对象名调用。

注意事项:在静态方法中没有this关键字,因为静态是随着类的加载而加载的,this是随着对象的创建才存在的,初始化这个方                      法的时候,还没有对象。静态只能访问静态,,非静态的可以访问讲台也可以访问非静态的。

静态变量和成员变量的区别:

A:所属不同
静态变量属于类,所以也称为类变量
成员变量属于对象,所以也称为实例变量(对象变量)
B:内存中位置不同
静态变量存储于方法区的静态区(共享区)
成员变量存储于堆内存
C:内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失
D:调用不同
静态变量可以通过类名调用,也可以通过对象调用
成员变量只能通过对象名调用


构造方法:

作用::用于创建对象,给对象中的成员进行初始化

特点:构造方法名和类名相同,他没有返回值类型,连void 都没有,也没有具体的返回值。

***对于构造方法,当我们没有定义构造方法时,系统会默认提供一个无参构造,但是一旦我们定义了构造方法,徐彤就不会在提供默认的无参构造。这时候,如果我们还想使用无参构造,就要自己给出。





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值