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

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、面向对象

1定义:是软件开过过程中使用一种思维方式 。

1) 面向过程:强调功能行为,关注完成的过程

2) 面向对象:将功能封装进对象,强调具备了功能的对象,不关注过程

3) 面向对象与面向过程都是一种思想,但面向对象是基于面向过程的

 

2特点:

1) 是一种更符合人们思考习惯的思想。

2) 可以将复杂的事情简单化。

3) 将程序由执行者转换成了指挥者。

 

3面向对象完成需求:

1) 明确开发功能需求。

2) 查找具有该功能的类。

3) 如果不存在满足功能的类,则定义这样的类。

4) 创建该类对象,使用对象完成功能。

4、面向对象三大特征:

1) 封装(encapsulation)

2) 继承(inheritance)

3) 多态(polymorphism)

 

二、类与对象

1、类:

1) 定义:具有相同特征(属性)和行为(功能)的一类事物的抽象。

2) 格式:

class 类名

{

数据类型  成员变量名;

成员函数{}

}

2、对象:

1) 定义:类的实体

2) 格式:

数据类型 变量名(对象名) = new 数据类型(参数);

3) 对象的使用:

成员变量的访问: 对象名.属性名

成员函数的调用: 对象名.函数名(参数)

3、类与对象的关系:

1) 类是抽象概念,对象是类的具体实例。

2) 一个类可以有多个对象。一个对象只属于一个类。

4、内存位置:

1) 对象由new关键字创建,实体存在于堆栈内存中

2) 任何数据均可以定义成类,创建对象,属于引用类型。

5、成员变量与局部变量:

1) 成员变量

定义位置:类中,整个类中均可以访问。

内存:成员变量随着对象的建立而建立,存在于对象所在的堆内存中。

默认值:成员变量有默认值。

回收:随着对象的回收而回收。

2) 局部变量

定义位置:定义域局部范围,如函数内,语句内等。

内存:局部变量存在于栈内存中。

默认值:没有默认值。

回收:随着作用域结束而回收,通常为语句或函数范围。

注意:局部变量必须先赋值,然后再使用

3) 变量访问原则: 就近原则

4) 为成员变量赋值的方式:

1使用构造方法

2使用set方法

注意:

1构造方法与set方法均能为成员变量赋值,并不冲突。

2构造方法只在创建对象时进行成员变量初始化。

3对象创建后由set方法依据需求修改成员变量值。

 

6、匿名对象

1) 定义:匿名对象是对象的简化形式,即没有名字直接创建的对象。

2) 匿名对象的使用:

对象方法只调用一次时。

作为实际参数传递时。

作为返回值返回时。

7创建对象时JVM所作动作:

栈内存开辟空间存储引用变量

使用new创建内存空间

调用构造方法

成员变量默认初始化

成员变量显示初始化

构造函数初始化

对象创建结束,将地址赋值给引用变量

 

三、封装

1) 定义:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

2) 优点:

将变化隔离、便于使用、提高重用性、提高安全性

3) 原则:

将不需要对外提供的内容都隐藏起来,提供公共方法对其访问。

4) private关键字:

1、是一个权限修饰符,用于修饰成员(成员变量和成员函数)

2、被私有化的成员只在本类中有效。

3、常用方式:将成员变量私有化,对外提供对应的set get方法对其进行访问。提高对数据访问的安全性。

 

四、构造函数

1) 定义:用来创建实例对象时调用的方法。

2) 格式:

修饰符 类名(数据类型 参数){}

3) 特点:

1函数名与类名相同,与函数名标识符命名原则相悖

2不进行返回值类型的定义,构造方法没有返回值

4) 作用:

为对象属性进行初始化

5) 注意事项:

1如果没有手动给出构造方法,则java会为我们提供一个空参的构造方法。

2如果手动地给出任意构造方法,则java均不会再为我们提供构造方法。

3多个构造方法使用重载的方式给出。

五、static关键字

1) 定义:静态修饰符,用于修饰成员(变量与函数)

2) 修饰后成员特点:

1被所有对象共享

2随着类的加载而加载,与创建对象时机无关

3可以直接通过类名访问或调用

3) 注意事项:

1静态修饰的变量一旦赋值便影响所有实例

2静态方法只能访问静态成员

3静态方法中无法使用this或者super

六、代码块

1) 定义:一块独立的代码区域,使用{}划定

2) 分类:

1、局部代码块

位置:存在于方法中

作用:控制变量作用域,影响变量生命周期

2、构造代码块

位置:存在于类中

作用:将构造器中相同代码抽取,在构造器前执行

3、静态构造代码块

位置:存在与类中

作用:只初始化一次

3) 执行顺序:静态构造代码块>构造代码块>局部代码块

静态代码块>默认初始化>显式初始化>构造代码块初始化>构造函数初始化

 

七、内存分配:

Java程序在运行时,需要在内存中分配空间。为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。

1栈内存:存储局部变量,当数据使用完,所占空间会自动释放

2堆栈内存:

通过new创建的实例均在堆栈当中

每一个实例均有内存地址

均有默认值

实体可以成为垃圾,在不确定的时刻被垃圾回收期回收

3其他区域:方法区、本地方法区、寄存器等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值