黑马程序员--面向对象之封装

来源:互联网 发布:数据挖掘 预测算法 编辑:程序博客网 时间:2024/05/16 08:49




  ---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

1、面向对象

1.1对象:其实就是一个个体[实体](个体就是指定生活中具体的一类事物)

1.2面向对象:其实也是一种解决问题的方案遇到需求,首先不是去分析怎么去解决需求中的功能,而是去找有没有已经存在解决需求中问题的功能(些解决问题的功能封装在类中),如果有,就直接使用已经存在的功能如果没有,就创建一个新的类,在类中书写解决问题的功能(函数)面向对象的思想中,开发人员属于调用者(指挥者)

1.3结论:面向对象其实就是面向类(类中封装了解决问题的功能)。面向对象是基于面向过程的,两者之间没有冲突。在发中,面向对象的思想和面对过程的思想通常是配合使用

2、面向对象举例(组装新电脑)

2.1使用面向过程的思想解决组装电脑:

  1.在网络上查找电脑硬件的信息

  2.去电脑城中各个商家咨询

  3.选择自己中意的商家,去购买电脑

  4.监控整个电脑的组装流程

  5.付钱,把电脑扛回家。

  所以使用面向过程的思想去装电脑,整个过程需要亲力亲为,比较累。

2.2使用面向对象的思想解决组装电脑:

   1.找一个懂电脑的人,告知对电脑的需求

   2.给钱,等待电脑回来

   使用面向对象的思想去装电脑,整个流程瞬间变得简单了。

3、对象在代码中的体现(描述汽车这类事物)

 

public class CarDemo {

public static void main(String args[]){

//创建汽车对象

Car c=new Car();

//访问汽车对象下的成员变量

c.number=4;

c.color="黑色";

//访问汽车对象下的成员函数

c.run();

}

 

}

//使用class来描述汽车

class Car{

//使用变量来描述汽车的特征

int number;

String color;

//使用函数来描述汽车的行为

void run(){

System.out.println(number+"个轮子的"+color+"汽车在行驶中......");

}

}

小结

     在java使用class描述事物

     使用变量描述事物中的特征称为:成员变量属性)

     使用函数描述事物中的行为(:成员函数或方法)

4、类和对象的区别:

1、 类是用来描述事物的。(通常描述的是一类事物共同具有特征和行为

2、 对象是所描述的事物创建出来的一个具体的实体

3、 有类描述事物,再有类所创建出来的对象

5、局部变量和成员变量的区别:

 

1、 从定义上来讲:

局部变量通常是定义函数中,属于函数的

成员变量是定义类中,属于类的

2、 内存存储上来讲:

局部变量是着函数的入栈而存在,局部变量是存储在栈内存中

成员变量是着对象的创建而存在,成员变量是存储在堆内存中

3、 调用(使用)来讲:

局部变量可以函数中直接使用

成员变量必须是在创建完对象后,通对象名来调用。

4、 从存活时间(生命周期)

局部变量是随着函数的入栈和出栈来计算存时间

成员变量是随着对象的创建和销毁来计算存时间

5、 初始值上来讲:

局部变量在定义时必须指定初始值(不具备默认值)

成员变量在定义时可以指定初始值,也可以使用默认值

 

6、匿名对象

6.1  匿名对象:就是指没有名字的对象。

6.2  匿名对象的局限性:在使用匿名对象时,如果需要访问(使用)所创建对象中的多个成员(包括成员变量、成员函数)时,此时使用匿名对象就无法操作同一个对象。

结论:当创建的对象要多次操作对象中的成员时,就不能使用匿名对象在只需要访问所创建对象中一个成员时,可以使用匿名对象

7、 封装

Java面向对象,有三大特征:封装、继承、多态

 

7.1java封装的体现:

1.函数把一些相同的代码抽取封装。提高复用

2.一些相同的特征、行封装提高复用性、提高安全性

7.2封装的好处:

1.提高程序复用性、安全性

2.以隐藏事物的细节,要对外提一个可以访问这些隐藏细节的方式(函数

7.3 private关键字:java语言中,隐藏事物细节就是使用关键字private

 

7.4小结1. private关键字:表示私有 被private修饰的成员只能在当前类中使用2. public关键字:表公共的。 被public修饰的成员可以在任何地方使用java中的封装:就是把成员变量私有化,为每一个成员变量提供public函数(赋值、取值)可以让外部程序间接访问私有的成员变量使用private隐藏成员变量后,需要对外提供两个函数:赋值[setter]、取值[getter]赋值,在开发中通常是使用setXxx() ,其中 Xxx成员变量的名字母大写取值,发中通常是使用getXxx()

8、构造函数

8.1么构造函数创建对象时,会自动被调用(被JVM调用)的函数称为构造函数(构造方法)

8.2构造函数体现

1.构造函数名字和模一样。(和类名相同)

2.构造函数书写时,没有返回值类型(连void不书写)[不书写void普通函数区分]

3.构造函数中没有返回值

8.3 默认构造函数:当一个类中,如果已经存在构造函数,在使用javac命令编译时,JVM不会添加默认的构造函数(类中有构造函数,JVM就不会自动添加,类中没有构造函数,JVM就会自动添加默认构造)

8.4构造函数和一般函数(成员函数)的区别:

1.调用上来讲:般函数,是创建完对象后,使用对象名调用(创建对象后,对象调用)构造函数,是在创建对象时,由JVM动调用 (创建对象JVM调用

2.调用数上般函数,在创建完对象后,可以使用对象名多调用(多次调用构造函数,在创建对象时,由JVM调用一次(次调用)

3.从作用上来讲:般函数用来描述事物行为(功能)构造函数,用来初始化对象使用的


                         ----------------ASP.Net+Unity开发、.Net培训、期待与您交流! --------------
                         详情请查看:www.itheima.com

0 0
原创粉丝点击