面向对象(1)

来源:互联网 发布:linux tar只读权限 编辑:程序博客网 时间:2024/05/29 03:55
1.什么是面向对象:

面向对象是相对面向过程而言的,是一种编程思想。面向过程强调的是功能行为,而面向对象是将功能封装进对象,强调具备了功能的对象。一个事物可能有很多复杂的功能,用面向过程进行处理就要顺序处理这些复杂的功能,而用面向对象的话面对的就是这个单纯地事物,可以说把复杂的问题简单化了,而编程者也从功能的执行者变成了指挥者。面向对象是基于面向过程的。

 

2.类和对象的关系:

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

对象:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。

类是对象的模版,对象是类的一个个体

 

3.类和对象的创建:

定义类就是在描述事物,定义事物的属性和行为:

[修饰符] class类名

{

    成员变量

    成员方法

}


定义对象实际上就是在堆内存中产生一个实体:

类名 对象名 = new类名();

如:

    Person p= new Person(“zhangsan,20

过程:

  1. new Person()时,Jvm通过类加载器将Person.class文件从外存中加载到内存

  2. 如果有静态代码块,则紧接着被执行,给Person.class进行初始化 

  3. 开辟堆内存空间,分配内存地址

  4. 在堆内存中建立对象的特有属性并进行默认初始化name=nullage=0

  5. 对对象进行显式初始化,将成员变量的给定值赋给对象的变量(例如,前面的代码有private int age=30,则将对象中的age设为30

  6. 如果有构造代码块,则紧接着构造代码块初始化

  7. 构造函数初始化,把“zhangsan,20赋给nameage

  8. 将内存地址赋给栈内存中的p变量


4.成员变量和局部变量

作用范围:

成员变量作用于整个类中,局部变量作用于函数或者语句中

在内存中的位置:

成员变量存在堆内存中,因为对象的存在才在内存中存在

局部变量存在栈内存中


5.匿名对象

匿名对象是对对象的简化形式

匿名对象两种使用情况:

    (1)对象方法仅进行一次调用时(每次调用产生的都是新对象)

     new Car().run();   //单纯调用run方法

    (2)匿名对象可以作为实际参数进行传递

    show(new Car());   //创建一个匿名对象作为参数传给show()使用








0 0
原创粉丝点击