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

需积分: 0 0 下载量 37 浏览量 更新于2024-08-04 收藏 781KB DOCX 举报
"朱槐志的CS1807课程关于Java编程的学习资料" 在Java编程中,修饰符的使用对于类的成员访问控制至关重要。以下是根据提供的内容详细讲解的几个关键知识点: 1. **私有访问修饰符(private)**: 当希望类的某个成员不被类的外部访问时,应该使用`private`修饰符。这样可以保护数据的安全性,防止外部代码随意修改或访问。例如,`private int secretNumber;`。 2. **静态修饰符(static)**: `static`修饰的成员属于类级别,而非实例级别,因此可以直接通过类名访问,无需创建对象。例如,`public static int count = 0;`,这个计数器可以在任何地方通过`ClassName.count`来访问和修改。 3. **默认初始化值**: 如果类的成员是一个类的对象,如`MyClass obj;`,且在声明时没有显式初始化,那么它的初始值将是`null`。这意味着该对象尚未被分配任何内存空间,需要通过`new MyClass()`来创建实例。 4. **this关键字**: 在类的非静态成员函数中,`this`关键字代表当前对象的引用。例如,`this.name = name;`表示将参数`name`赋值给当前对象的`name`属性。 5. **构造函数**: 构造函数用于初始化新创建的对象。A. 构造函数在创建对象时自动调用;B. 错误,一个类可以定义多个构造函数(构造函数重载);C. 正确,类可以不定义构造函数,系统会提供一个默认的无参构造函数(除非其他构造函数已定义);D. 正确,构造函数名称必须与类名相同,且无返回值。 6. **访问修饰符的选择**: B. 无修饰符的成员变量(默认访问级别)只允许同包内的类访问;A. `private`是私有的,不允许包外访问;C. `public`允许所有类访问;D. `protected`允许子类和同包内访问。 7. **静态成员访问**: C. 为了让方法`fun()`能直接访问类的私有成员`m`,需要将`m`声明为`static`,因为静态成员不受对象实例的影响,可以直接通过类名访问。 8. **包访问权限**: 对于类A,若在不同包的B类中可以访问成员变量`m`并赋值,那么`m`需要是`public`的,同时类A也需是`public`的。C选项满足条件。 9. **构造函数与方法覆盖**: AA类的第二个构造函数`String AA(long i)`实际上是一个错误的声明,因为构造函数不能返回一个字符串。在Java中,构造函数不能有返回类型,即使`void`也不行。 10. **构造函数调用**: 在程序中,`this.i=i`是在构造函数中调用另一个构造函数的方式,确保对象的成员`i`得到正确的初始化。 这些知识点涵盖了Java访问控制、对象初始化、构造函数的使用、成员变量的静态与非静态特性以及包级别的访问规则,是Java编程的基础概念。理解和熟练应用这些知识点对于编写高质量的Java代码至关重要。