Java类与对象:访问修饰符和构造函数

需积分: 0 0 下载量 178 浏览量 更新于2024-08-04 收藏 472KB DOCX 举报
"本章作业主要涉及Java编程语言中的访问修饰符、类的成员初始化、构造函数、对象的创建以及成员变量的访问控制。" 详细知识点解析: 1. 访问修饰符 - `private`: 当希望一个类中的成员不能在类的外部访问时,应该使用`private`修饰符定义该成员。`private`修饰的成员只能在同一个类内部被访问。 - `public`: 使用`public`修饰符定义的类成员,可以在任何地方被直接访问,无需创建对象。 2. 类的成员初始化 - 如果类的一个成员是一个类的对象,而这个成员没有在类的实例初始化器或构造函数中显式初始化,那么该对象的初始值是其类型的默认值。对于引用类型(如类对象),默认值是`null`。 3. `this`关键字 - 在类的非静态成员函数中,使用`this`关键字来表示当前调用该函数的对象,它引用的是对象的实例。 4. 构造函数 - A. 构造函数的调用时机是在实例化对象时,用于初始化新创建的对象。 - B. 错误:一个类可以有多个构造函数,通过重载实现不同参数的构造。 - C. 正确:一个类可以不定义构造函数,Java会提供一个默认的无参构造函数。 - D. 正确:构造函数的名字必须与类名相同,并且没有返回值。 5. 访问控制修饰符的选择 - A. `private`: 仅限于本类访问。 - B. 无修饰符:默认为包级私有,只允许同一包内的类访问。 - C. `public`: 允许所有类访问。 - D. `protected`: 允许同一包内和子类访问。 6. 成员变量的访问 - 为了使成员变量`m`在静态方法`fun()`中直接访问,需要将其声明为`static`,因为静态方法不能访问实例变量。 - 选项C正确:将`private int m`改为`static int m`。 7. 类的可见性和成员访问 - 对于`classA`,如果在另一个包中的`classB`中,`A a = new A(); a.m = 10;`语句成立,那么`m`必须是公共的并且`classA`也应该是公共的,以便在不同包中可以创建`classA`的对象并访问其成员。 - 选项C正确:`public class A { public int m; }` 8. 构造函数和方法覆盖 - 在提供的程序中,类`AA`有两个构造函数,一个无参构造函数和一个带`String`参数的构造函数。这里带`String`参数的方法实际上并不是构造函数,因为它返回了一个`String`,真正的构造函数是无参和带`long`参数的。程序可能试图通过`AA("i=value")`调用那个方法,但这是错误的,因为构造函数不能返回值。 总结:本章作业涵盖了Java编程基础的几个核心概念,包括访问修饰符、对象初始化、构造函数的使用、成员变量的访问控制以及类的可见性。这些都是编写和理解Java程序的基础。