第四章 面向对象(一)

第四章 面向对象(一)

面向过程和面向对象的设计思想

●面向过程:procedure oriented programming 缩写 POP

1.分析出解决问题所需要的步骤,然后把步骤一步一步实现

2.面向过程直接关注流程

●面向对象:object oriented programming 缩写 OOP

1.以分类的方式进行思考和解决问题

2.面向对象先对整体关系作出分类,然后根据不同的类深入细节的处理

3.面向对象的思想符合人类的认知习惯

●关系:面向对象无法取代面向过程,他们是相辅相成的。面向对象关注于从宏观上把握事物之间的关系,在具体到如何实现某个细节时,仍然采用面向过程的思维方式。面向对象如果离开了面向过程,就无法实现真正的落地,成为无源之水

Java类

●什么是类?

类是一个模板,它描述一类事物的属性和行为的集合.

类是表示一个客观世界某类群体的一些基本特征抽象.

●类的结构

成员变量:事物属性的描述

方法:事物的行为;(可以做的事情)

构造方法:用于创建对象

内部类: 即在类体中声明的类

块:一段没有名称的代码块

Java类的定义

●第一步:发现类

类的声明格式为:

[访问权限修饰符] [修饰符] class Car{

}

访问修饰符有两种public,无(默认)

修饰符:final,abstract

关键字class用来定义一个类

Java类名的命名规范:

类名首字母大写,见名知意,驼峰表示

●第二步:发现类的共有属性(成员变量)

public class Car{

//成员变量定义

String name; //名称

String color; // 颜色

float price;//价格

}

声明成员变量的格式为:

[访问权限修饰符] [修饰符] type attr_name

[=defaultValue] ;

•第三步:发现类的方法

public class Car{

//成员变量定义

String name; //名称

String color; // 颜色

float price;//价格

方法声明格式为:

[访问权限修饰符] [修饰符]/ void start(){

System.out.println("汽车启动");

[return 返回值;]

}

}

java对象

●对象:对象是类的一个实例,是以类为模板在内存中创建的实际存在的实例

对象的创建和使用

●对象的创建和使用

Car x1 = new Car();

Car x1:使用Car类作为类型声明一个变量x1

new Car():使用new + Car类构造方法创建对象

= :将右边创建的对象地址 赋给 左边的x1变量

使用x1变量访问对象中的成员变量和成员方法.

● 同一类的每个对象有不同的成员变量存储空间

● 同一类的每个对象共享该类的方法

类和对象

●总结类和对象

类是一类事物的抽象概念,是一个模型

对象是由这个模型所创造的一个个具体存在的,实实在在存在的实例

所以创建对象的过程也叫实例化对象

•现实生活中先有对象后有类,而编程时先设计类后创建对象

变量分类

●按照位置变量分为:

●成员变量:

成员变量是定义在类中,方法体之外的变量

成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)

在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化

成员变量在创建对象的时候会从类中复制一份到对象中

成员变量可以被类中方法、构造方法和特定类的语句块访问

成员变量的作用范围为整个类体

●局部变量:

在方法、构造方法或者语句块中定义的变量被称为局部变量

局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)

局部变量在使用前必须初始化赋值

变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁

方法分类

●成员方法:成员方法是定义在类中

语法格式:

修饰符 返回值类型 方法名 ( 参数列表) {

方法体语句;

[return 返回值]

}

●构造方法:用来初始化对象的方法

构造方法

●构造方法名与类名相同,且没有返回值,且不需要使用void修饰

●作用:在构造方法中为创建的对象初始化赋值

●在创建一个对象的时候,至少要调用一个构造方法

●每个类都有构造方法。如果没有显式地为类定义构造方法,Java将会为该类提供一个默认构造方法,但

是只要在一个Java类中定义了一个构造方法后,默认的无参构造方法即失效

●一个类可以有多个构造方法例:

例:

public class Car{

       public Car(){ }

       public Car(String name){ 
  
       // 这个构造方法有一个参数:name }

}

方法的重载

●方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法

●参数不同(可以有三方面的不同)

●数量不同

●类型不同

●顺序不同

●调用时,会根据不同的参数表选择对应的方法

•注意:方法重载跟方法的返回值类型没有任何关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值