专题三 面向对象程序设计(一)(讲义)-《计算机程序设计》(电工版第二版)高考备考讲练测(吉林省)
2024-09-18
|
14页
|
198人阅读
|
2人下载
精品
内容正文:
面向对象程序设计(一)
[考纲要求]
考试内容:
类;对象,成员变量;成员方法。
知识点要求:
1.掌握类、对象、成员变量、成员方法的基本概念。
2.掌握类的声明、成员变量的声明、成员方法的声明与调用,方法的参数传递与返回值、方法的重载、静态变量和静态方法。
3.掌握对象的创建和使用、构造方法与对象的初始化、成员变量、成员方法的访问、this的应用以及引用的赋值。
[课时安排]
2课时
[知识梳理]
一.类和对象的概念
把客观世界众多的事物进行归纳、分类,把具有相同特征及相同行为的对象的集合称为一类对象。分类的原则是抽象。因此类是同种对象的集合与抽象。
对象 (Object) 是现实世界中实际存在的某个具体实体。
对象也可以是无形的,如象棋的输赢规则。
对象包含特征和行为:
特征是指对象的外观、性质、属性等;行为是指对象具有的动作、功能等。
二.类和对象的关系
类是一组具有共同性质的对象的集合,而对象是类的具体实例。类是模板,对象是类的 实例化。
三.类的定义
1 定义格式
(1)修饰符:默认为public。用于指定类、方法或变量的访问权限。
(2)类名:类的名称,遵循Java命名规则。
(3)类变量:静态变量,属于类而不属于类的实例,可以在类外部通过类名直接访问。
(4)实例变量:非静态变量,属于类的实例,每个实例都有自己的一份变量值。
(5)构造方法:特殊的方法,用于创建类的实例。没有返回类型,名称与类名相同。
(6)成员方法:普通的方法,包含方法体和返回类型。
(7)参数列表:方法可以接收的参数,参数类型和名称。
(8)返回类型:方法执行后返回的数据类型,如果方法不返回任何值,则返回类型为void。
(9)方法体:方法内部的代码,包括声明和执行语句。
四.类的成员变量
类的成员变量用于描述类的特征或属性,类的成员变量可以是基本数据类型,也可以是对象、数组等复合数据类型。
类的成员变量的声明格式
[修饰符] 数据类型成员变量名 = [初值];
例子:
private String = “张三”;
五.类的方法
类中的方法又称为成员方法或成员函数,用于描述所具有的功能和操作,是一段完成某 种功能或操作的代码。
方法定义的格式
[修饰符] 返回类型 方法名([参数列表]) {
// 方法体
[return 表达式;] // 如果方法有返回值,必须包含这个语句
}
修饰符:方法可以有多种修饰符,如public、private、protected、static、abstract和final。这些修饰符决定了方法的可见性和行为。
返回类型:方法执行完毕后返回的数据类型。如果方法不返回任何值,则返回类型为void。
方法名:方法的唯一标识符,遵循Java命名规则。
参数列表:方法可以接受零个或多个参数,每个参数都包含参数类型和参数名。
方法体:方法内部的代码,包括声明和执行语句。
return 表达式;:如果方法有返回值,必须在方法体中包含return语句,返回一个表达式的值。
六.参数传递和返回值
参数传递
Java中的参数传递是值传递,这意味着传递给方法的是参数的值,而不是参数对象本身。这意味着方法内部对参数的修改不会影响到原始的参数。
返回值
方法可以返回一个值,返回值可以是任何数据类型,包括基本数据类型和对象。返回值通过方法名后面的小括号来指定。
参数传递和返回值的关系
参数传递是值传递,方法内部对参数的修改不会影响到原始的参数。
返回值是方法执行完毕后返回给调用者的值。
注意事项
方法可以有多个参数,参数之间用逗号分隔。
方法可以有返回值,如果没有返回值,则返回类型为void。
方法可以抛出异常,调用者需要处理这些异常。
方法可以有默认参数值,但必须从最后一个参数开始设置。
七.方法的重载
在Java中,方法重载(Method Overloading)是指在同一个类中,可以定义多个方法名称相同但参数列表不同的方法。这些方法被称为重载方法。重载方法可以提高代码的灵活性和可读性,允许用户根据需要选择合适的方法来执行特定操作。
方法重载的规则:
方法名相同:重载方法必须具有相同的方法名。
参数列表不同:重载方法可以通过改变参数的数量、类型或顺序来区分。
返回类型无关:重载方法的返回类型可以不同。
访问修饰符无关:重载方法的访问修饰符可以不同。
异常类型无关:重载方法的异常类型可以不同。
八.static关键字
在Java编程语言中,static 是一个关键字,用于修饰类变量(也称为静态变量)和类方法(也称为静态方法)。
类变量(Static Variable):
类变量是类的属性,它不属于类的任何实例。
类变量在整个应用程序中只有一个副本,并且所有类的实例共享这个变量。
类变量在类加载时被初始化,并且它们的值在程序运行期间保持不变,直到程序结束。
类变量可以被类的方法访问,也可以被其他类访问,只要这些类在同一个包中或者访问权限允许。
public class MyClass {
static int count; // 类变量
public static void main(String[] args) {
count++; // 访问和修改类变量
System.out.println("Count: " + count);
}
}
类方法(Static Method):
类方法是类的行为,它们不需要创建类的实例就可以直接调用。
类方法可以直接访问类变量,但不能直接访问非静态变量。
类方法可以被类的方法访问,也可以被其他类访问,只要这些类在同一个包中或者访问权限允许。
使用 static 关键字时,需要注意以下几点:
(1) 类变量和类方法必须在类定义的外部声明。
(2) 类变量和类方法可以被声明为 public、private 或 protected,以控制它们的访问权限。
(3) 类变量和类方法可以被任何类的实例或类名直接访问,不需要创建类的实例。
(4) 类变量和类方法不能直接访问非静态变量,除非它们是同一个类中的。
九.对象的创建
(1) 首先,需要定义一个类,该类包含属性(成员变量)和方法(成员函数)。
(2)创建对象:使用new关键字创建类的实例。
十.对象的初始化
(1)设置属性:创建对象后,通过点号(.)访问对象的属性,并设置值。
(2)调用方法:通过对象名调用对象的方法。
十一.对象的使用
(1)对象引用:对象在Java中是通过引用(Reference)来访问的。创建对象时,实际上是在内存中分配空间并返回该空间的引用。
(2)对象销毁:当对象不再被引用时,垃圾收集器(Garbage Collector)会自动回收该对象所占用的内存。
十二.this关键字
在Java中,this 关键字是一个特殊的引用,指向当前对象本身。this 关键字在方法内部使用,用于引用当前对象的方法和属性。
在构造方法中,this 关键字可以用来区分对当前对象的引用和对其他对象的引用。
在方法内部,this 关键字可以用来引用当前对象的成员变量,而不是局部变量。
在构造方法中传递当前对象: 在构造方法中,你可以使用 this 关键字将当前对象传递给另一个构造方法。
在重载方法中,this 关键字可以用来调用当前类中的其他方法。
使用 this 关键字时,需要注意以下几点:
this 关键字不能用在静态方法中,因为静态方法属于类,而不是类的实例。
this 关键字不能用在静态字段或静态代码块中。
在构造方法中,this() 语句必须放在所有其他构造代码之前。
十三.super关键字
在Java中,super 关键字是一个特殊的引用,它指向当前对象的直接父类(超类)的实例。super 关键字通常用于以下几种情况:
调用父类构造方法: 当创建子类对象时,Java编译器会自动调用父类的构造方法。如果需要显式地调用父类的构造方法,可以使用 super() 或者 super(参数)。
访问父类成员: 在子类中,你可以使用 super 关键字来访问父类的成员变量和方法。
覆盖父类方法: 当子类重写父类的方法时,可以使用 super 关键字来调用父类的方法。
使用 super 关键字时,需要注意以下几点:
super 关键字不能用在静态方法中,因为静态方法属于类,而不是类的实例。
super 关键字不能用在静态字段或静态代码块中。
super() 语句必须放在子类构造方法的第一行,除非构造方法是默认构造方法。
[限时练习]
1. 以下关于类和对象的说法,错误的是( )
A. 类是对象的抽象,对象是类的实例
B. 成员变量用来描述对象的属性,成员方法用来描述对象的行为
C. 类的定义包含了成员变量和成员方法的声明
D. 对象可以直接访问类的成员变量和成员方法
【答案】D
【解析】对象不能直接访问类的成员变量和成员方法,必须通过类的实例(即对象)来访问。
2. 关于方法的重载,以下说法正确的是( )
A. 方法重载要求方法名相同,参数类型和个数必须完全相同
B. 方法重载要求方法名相同,参数类型可以不同,个数必须相同
C. 方法重载要求方法名相同,参数类型和个数可以不同
D. 方法重载要求方法名不同,参数类型和个数可以不同
【答案】C
【解析】方法的重载是指在一个类中,可以有多个方法名相同但参数列表不同的方法。
3. 以下关于构造方法的描述,错误的是( )
A. 构造方法用于初始化对象
B. 构造方法名必须与类名相同
C. 构造方法可以有返回值
D. 构造方法在创建对象时自动调用
【答案】C
【解析】构造方法在创建对象时自动调用,用于初始化对象,其方法名必须与类名相同,且没有返回值。
4在Java中,以下关于静态变量和静态方法的描述,错误的是( )
A. 静态变量属于类,而不是对象的实例
B. 静态方法可以直接通过类名调用,无需创建对象
C. 静态变量和静态方法可以通过对象名调用
D. 静态方法不能访问非静态成员变量
【答案】D
【解析】 静态方法不能直接访问非静态成员变量,但可以通过创建对象来访问。
5. 关于this关键字的应用,以下说法错误的是( )
A. this关键字可以用来引用当前类的成员变量
B. this关键字可以用来调用当前类的构造方法
C. this关键字可以用来作为方法的返回值
D. this关键字可以在静态方法中使用
【答案】D
【解析】 this关键字不能在静态方法中使用,因为静态方法属于类,而this关键字指向当前对象。
6.类的成员变量如果不进行显式初始化,那么它们在对象创建时会被自动初始化为默认值。( )
【答案】正确
【解析】在Java中,类的成员变量如果不进行显式初始化,确实会被自动初始化为默认值,例如整型变量默认为0,布尔型变量默认为false,对象引用默认为null等。
7. 在Java中,一个类可以有多个构造方法,只要它们的参数列表不同。( )
【答案】正确
【解析】Java支持构造方法的重载,只要参数列表不同,一个类可以有多个构造方法。
8.静态方法不能访问非静态成员变量,但可以通过创建类的实例来访问非静态成员变量。( )
【答案】错误
【解析】静态方法确实不能直接访问非静态成员变量,因为它不依赖于任何对象实例。但是,静态方法可以通过创建类的实例来访问非静态成员变量,这种做法并不推荐,因为它违背了静态方法的初衷。
9.在成员方法中,可以使用this关键字来区分同名的局部变量和成员变量。( )
【答案】正确
【解析】在成员方法中,如果局部变量和成员变量同名,可以使用this关键字来明确指出是访问成员变量,从而避免命名冲突。
10.建一个名为Person的类,包含以下成员变量:name(姓名),age(年龄),和gender(性别)。提供一个构造方法用于初始化这些成员变量,并提供一个方法introduce(),该方法返回一个描述该人的字符串。。
【答案】
11. 编写一个名为Calculator的类,该类包含一个静态方法add,它接受两个整数参数并返回它们的和。另外,包含一个非静态方法subtract,它也接受两个整数参数并返回它们的差。
【答案】
12.创建一个Book类,包含成员变量title(书名)和author(作者)。实现一个构造方法用于初始化这些变量,并实现一个方法displayBookInfo()来显示书籍信息。重载构造方法,使得可以只通过书名创建Book对象。
【答案】
13.编写一个Rectangle类,包含成员变量width和height。实现一个构造方法来初始化这些变量,并实现一个方法calculateArea()来计算并返回矩形的面积。另外,实现一个静态方法isSquare,它接受一个Rectangle对象作为参数,并返回一个布尔值,表示该矩形是否为正方形。
【答案】
[归纳小结]
学科网(北京)股份有限公司
$$
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。