黑马程序员——学习日志4面向对象(概念,类与对象,封装,构造函数,this关键字)

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




1、理解面向对象

      面向对象是相对面向过程而言,面向对象和面向过程都是一种思想。面向过程强调的是功能行为,面向对象时将功能封装进对象,强调具备了功能的对象。面向对象是基于面向过程的。

2、面向对象的特点

      是一种符合人们思考习惯的思想,可以将复杂的问题简单化,将程序员从执行着转换成了指挥者,完成需求是时,先要去找具有所需的功能的对象来用,如果该对象不存在,那么创建一个具有所需功能的对象,这样简化开发并提高复用。

3、面向对象开发,设计,特征

      开发的过程其实就是不断地创建对象,使用对象,指挥对象做事情。设计的过程就是在管理和维护对象之间的关系。面向对象特征:封装,继承,多态。

4、类与对象关系

类是用来描述对象的。由于对象是虚拟出来的东西,是看不见摸不着的,我们需要在程序中使用对象,就需要用一种方式来描述对象,然后根据这个描述来创建对象。

对象是类的实例,类是对象的抽象。

5、定义类

      将一系列特征相似的对象的共同特征及行为抽取出来进行描述,写在一个class中,用成员变量描述对象的特征,用成员方法来描述对象的行为。

6、成员变量与局部变量

      成员变量:成员变量定义在类中,在整个类中都可以被访问。成员变量随着对象的建立而建立,存在于对象所在的堆内存中。成员变量有默认初始化值。基本数据类型初始化值为0,引用数据类型初始化值为null。

      局部变量:只定义在局部范围内,如:函数内,语句内等。存在于栈内存中。作用的范围结束,变量空间会自动释放。没有默认初始化值。

7、创建对象与对象的使用

      使用new关键字和指定类名来创建一个对象。Person p = new Person();

这句话先在堆内存中创建了一个对象,然后栈内存中创建一个变量引用了对象的地址。

当我们创建对象之后可以使用点语法来访问对象的属性和方法。

8、匿名对象

      我们可以不定义变量引用对象,使用new关键字创建对象后直接使用,这样的对象没有名字,所以叫匿名对象。匿名对象因为没有任何引用到达,在使用一次之后即成为垃圾。

通常我们需要使用一个对象且只使用一次的时候,就可以使用匿名对象。比如将对象作为一个参数传递给另外一个函数。

9、封装

定义:封装是指隐藏对象的属性和一些实现细节,仅对外提供必须的访问方式。

      怎么封装: 将属性隐藏,提供公有方法对其访问。将不需要对外提供的方法隐藏。

      好处:提高安全性:在访问对象的属性时候通过方法实现,在方法中可以进行校验。隐藏不必要提供的方法避免错误的调用。简化编程:使用者无需关心对象内部具体实现细节,只要根据对象功能调用指定方法。

10、private关键字

      是一个权限修饰符,用于修饰成员(成员变量和成员函数),被私有化的成员只在本类中有效。对外提供对应的set、get方法对其进行访问,提高对数据访问的安全性。

      私有只是封装的一种表现形式

11、构造函数

      特点:函数名和类名相同。没有返回值类型。注意:没有返回值类型不等同于void,void也是一种返回值类型。不能使用return关键字返回任何值。在使用new关键字创建对象之后自动调用。

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

      多个构造函数以重载的形式存在。每一个类都有构造函数,即使我们没有显式定义构造函数,也会生成一个默认无参的构造函数,其中没有任何内容。注意:这个自动生成的构造函数只在未定义任何构造函数时生成,如果我们定义了一个有参的构造函数,那么就不会生成无参的了。

访问权限:在定义构造函数时,如无特殊需要,应使用public关键字修饰构造函数。在一些特定情况下,我们不想让别人创建该类对象,那么可以使用private修饰构造函数,例如单例设计模式。

12、this关键字

      特点:this代表其所在函数所属对象的应用。this代表本类对象的引用。当在函数内需要用到调用该函数的对象时,就用this。

方法中局部变量和成员变量重名,我们想调用成员变量时就可以使用this.变量名形式访问成员变量。

在方法中要将调用该方法的对象作为参数传递给另一个方法时,可以将this作为实参传给该方法。

在内部类中访问外部类的成员时,需要使用外部类名.this.成员名形式访问。

      this语句在构造函数的调用:构造函数可以在该类其他构造函数的第一个语句使用this关键字调用。this语句只能定义在构造函数的第一行。因为初始化要先执行。

 

 

 

 





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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值