黑马程序员-Java面向对象(一)

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

黑马程序员——Java面向对象(一)

一、包含知识点:

1、面向对象概述

2、面向对象的特点

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

4、类与对象的关系

5、成员变量和局部变量

6、匿名对象的应用

7、封装概述和封装private

8、构造函数和构造代码块

9、this关键字及this关键字的应用

10、this关键字在构造函数中的调用

二、详细介绍

1.面向对象概述

  面向对象是相对面向过程而言

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

面向过程:

强调的是功能行为

面向对象:

将功能封装进对象,强调具备了功能的对象。

面向对象是基于面向过程的。

举例:

接了一个项目,要做需求分析、写代码和测试,我找人把这些过程都交给他们去做,他们对我来说就是对象,我就是在调用他们的开发功能,而我就是在面向对象。


2.面向对象的特点对象的特点

• 是一种符合人们思考习惯的思想

• 可以将复杂的事情简单化

• 将程序员从执行者转换成了指挥者

完成需求时:

• 先要去找具有所需的功能的对象来用。

• 如果该对象不存在,那么创建一个具有所需功能的对象。

• 这样简化开发并提高复用。

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

开发:其实就是找对象,没有对象就创建对象,使用对象和指挥对象

设计:建立对象,使用对象,维护对象的关系

特征:封装、继承、多态

4、类与对象的关系

类:对现实生活中事物的描述

对象:就是这类事物实实在在存在的个体

现实生活中的对象:张三、李四

描述是:提取对象中的共性,对具体的抽象,如:姓名、性别、年龄等等。如下图:

黑马程序员-Java面向对象(一)_第1张图片

可以理解为:

类就是图纸

汽车就是堆内存中的对象

类的定义:

如:人有身高,体重等属性,有说话,打球等行为。

Java中用类class来描述事物也是如此

属性:对应类中的成员变量。

行为:对应类中的成员函数。

定义类其实在定义类中的成员(成员变量和成员函数)。

总结:类就是描述对象的共性,定义类就是在描述事物、描述对象,就是在定义属性和行为(成员变量和成员方法)

生活中描述事物无非就是描述事物的属性和行为。


5、成员变量和局部变量

作用范围:

成员变量:作用于整个类中

局部变量:作用于函数或者语句中

在内存中的位置:

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

局部变量:在栈内存中。

生命周期:

成员变量:只有在类销毁后才随着类的销毁而消失

局部变量:当函数或语句执行完毕后就会自动释放

默认初始化值:

成员变量:有默认初始化值

局部变量:没有初始化值


6、匿名对象的应用

class Car{
         String color="red";
         int num=4;
         void run(){
                   System.out.println("颜色:"+color+";轮胎数:"+num);
         }
}
/*
                   new Car();//这就是匿名对象
                   new Car().num=6;//没意义
                   new Car().color="green";//没意义
                   new Car().run();//有意义
                   //匿名对象使用方式1:当对对象的方法只调用一次时,可以用匿名对象来完成,这边比较代码比较简化,如果对一个对象进行多次成员调用,必须给这个对象起个名字
                   //匿名对象使用方式2:可以将匿名对象作为实际参数传递,如下:
                   */
                   show(new Car());
         }
//需求:汽车修配厂,对汽车进行改装,将来的车改成黑色,3个轮胎
         public static void show(Car c)
         {
                   c.color="black";
                   c.num=3;
                   c.run();
         }

7、封装概述和封装private

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

好处:将变化隔离,便于使用,提高重用性,提高安全性

封装原则:将不需要对外提供的内容隐藏起来,把属性都隐藏,提供公共方法对其访问.

private私有,权限修饰符,用于修饰类中的成员(成员变量,成员函数)

注意:私有仅仅是封装的一种表现方式

之所以对外提供访问方式,就是因为可以在访问方式中加入逻辑判断等语句

对访问的数据进行操作,提高代码的健壮性。


8、构造函数和构造代码块

构造函数: 构造函数可以用于给对象进行初始化,当一个类中没有定义构造函数的时候,那么系统会默认给该类加入一个空参数的构造函数,当在类中自定义了一个构造函数,那么系统就不会给该类加入构造函数

什么时候定义构造函数?

当分析事物时,该事物存在(创建)就具备一些特性或者行为,那么将这些内容定义在构造函数中。比如:人一生下来就会哭.

构造代码块:

作用:给对象进行初始化,对象一建立就运行,而且优先于构造函数执行

      和构造函数的区别:

      构造代码块是给所有对象进行统一初始化

      构造函数是给对应的对象初始化

      构造代码块中定义的是不同对象的共性初始化内容


9、this关键字及this关键字的应用

this关键字:看上去是用于区分局部变量和成员变量同名的情况

this代表所在函数所属对象的引用.

哪个对象在调用this所在的函数,this就代表哪个对象但凡在本类对象中要调用本类对象时,必须要用到this

简单说:哪个对象在调用this所在函数,this就代表哪个对象,格式:this.

this关键字的应用:当定义类中功能时,该函数内部要用到的调用该函数的对象时,这时用this来表示该对象.但凡是本类功能内部使用到了本类对象,都用this来表示,格式:this.


10、this关键字在构造函数中的调用

this关键字在构造函数中的调用:只能定义在构造函数的第一行

用于构造函数之间的互相调用,格式:this();


你可能感兴趣的:(编程_Java系列)