`
lionheartyd
  • 浏览: 4793 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

类默认构造函数的访问权限

    博客分类:
  • java
 
阅读更多


package pkg1;
public interface Interface {...}

package pkg2;
import pkg1.*;
public class Base {
    protected class BaseInner implements Interface{
        //(1)
        public BaseInner() {}
        ...
    }
}


package pkg3;
import pkg1.*;
import pkg2.*;
public class SomeClass extends Base {
    Interface getBaseInner() {
        //(2)
        return this.new BaseInner();
    }
    ...
}

1、如果不定义构造方法,则编译器自动生成与类的访问权限相同的默认构造方法。
2、除了内部类,类的访问权限不能设置成protected或是private的。
3、我先前的代码中(1)处若不写public,则会认为构造器是protected的,也就是说构造器只能被BaseInner的子类所调用,而(2)所处的类并不是BaseInner的子类,所以会出现不可见的错误。没有理解好访问权限的意义是问题出现


分享到:
评论

相关推荐

    14_构造函数 视频

    如果子类没有显式定义构造函数,它将自动获得一个默认构造函数,调用父类的无参构造函数。若子类需要调用父类的有参构造函数,必须通过`super()`关键字来实现。 6. **构造函数与final字段**:对于声明为`final`的...

    c++ 类与对象课件,包括对象的初始化,对象的使用,构造函数和析构函数等等

    在这个课件中,我们将深入理解类与对象的定义、使用,以及相关的构造函数、析构函数、访问权限、成员函数、静态成员、友元等关键知识点。 首先,类(Class)是C++中定义的一种数据结构,它包含了数据成员(Data ...

    实验5 类和对象应用.doc

    * 默认构造函数也可以由程序员直接定义在类体中 五、拷贝构造函数 * 拷贝构造函数的定义:class T{ public: T(const T & 对象名);……}T::T(const T &对象名 ){ 函数体 } * 拷贝构造函数的特点:用于依据已存在的...

    c++类的基本练习

    在这个"C++类的基本练习"中,我们将深入探讨几个关键概念,包括封装、默认构造函数、方法的实现以及友元函数的应用。 **封装**是面向对象编程的核心原则之一,它的目的是隐藏数据的内部细节,只对外提供接口来访问...

    张秀文实验六友元函数和构造函数.zip

    3. 如果类没有定义任何构造函数,编译器会提供一个默认的无参构造函数。 4. 可以定义带有参数的构造函数,称为带默认参数的构造函数,便于在创建对象时传递初始值。 5. 构造函数可以通过初始化列表(initializer ...

    PHP 类与构造函数解析

    如果没有给出参数,则默认使用构造函数中 `=` 后的值。 ### 静态字段与静态方法 PHP支持静态字段和静态方法的声明。静态字段是类的字段而不是对象的字段,它属于类本身,所有的对象共享同一个静态字段。使用 `...

    详解C++中如何将构造函数或析构函数的访问权限定为private

    总之,将构造函数或析构函数的访问权限设为private或protected是一种强大的设计策略,它可以帮助我们控制类的实例化、内存管理以及对象生命周期,特别是在实现单例模式或需要精细控制对象创建和销毁的场合。...

    C++类继承,访问权限,有源码参考

    - 友元函数或友元类可以访问类的私有和保护成员,打破封装限制,提供特殊访问权限。 8. **继承的用途**: - 提高代码复用性:通过继承,可以避免重复编写相似的代码。 - 类的层次结构:构建复杂系统时,可以使用...

    基于Java的访问权限控制源代码.zip

    它们通过控制构造函数的访问权限来限制实例化,或者使用私有构造函数来实现不可实例化的工具类。 通过分析这个压缩包中的源代码,我们可以深入理解Java的访问权限控制机制,并学习如何在实际项目中应用这些原则,以...

    24_继承的由来 和 继承的访问控制权限 video

    3. **默认(包访问权限)**:在同一包内的类可以访问,但跨包时不可见。 4. **private**:私有访问权限,只有在定义它的类内部可以访问,不允许其他类访问。 在继承关系中,访问控制权限扮演着重要角色。子类可以...

    c++类与对象练习题.pdf

    一个类可以有多个默认构造函数。 11. **复制构造函数的用途**:复制构造函数常用于对象赋值、函数参数传递和函数返回值。 12. **成员函数的特性**:成员函数可以是静态的,可以重载,可以有默认参数,但不是所有...

    java练习册(011)--类(3).pdf

    3. **默认构造函数**:如果类没有显式定义任何构造函数,Java会自动提供一个默认的无参数构造函数。但是一旦类中定义了构造函数,这个默认构造函数就不会被提供,因此在需要的时候需要手动添加。 4. **构造函数调用...

    java类访问权限与成员访问权限解析

    3. `ClassAccessTestImp`的构造函数也是默认访问权限,所以只有在`classaccesstest`包内的类才能直接创建它的实例。 4. `getData()`和`getString()`方法是`public`的,因此无论类的访问权限如何,这些方法都可以在...

    C++ 类与对象习题

    - **默认构造函数**: 如果类中没有定义构造函数,C++编译器会自动生成一个默认构造函数。 - **拷贝构造函数**: 拷贝构造函数用于创建一个对象的副本,其参数是一个同类对象的引用。 - **成员初始化**: 在拷贝构造...

    DTMManager.rar_On Purpose

    综上所述,"DTMManager.jar_On Purpose" 的描述揭示了 DTMManager 类的默认构造函数被设计为 protected 是出于特定的设计考量,可能是为了控制实例化、支持继承、实现特定设计模式或是封装。这要求开发者在使用这个...

    C Primer类的总结

    没有默认构造函数的类需要手动定义。默认构造函数通常应被定义,特别是当类中包含必须在初始化列表中完成初始化的成员时。构造函数通过指定成员初始化列表来初始化成员变量。 复制构造函数用于初始化一个对象为另一...

    FileStream 构造函数

    这个类提供了多种构造函数来初始化一个`FileStream`对象,以便根据不同的需求创建文件流。本文主要讨论其中一个常见的构造函数`FileStream(String, FileMode, FileAccess)`。 **构造函数签名** ```csharp public ...

    基于Java的实例源码-访问权限控制源代码.zip

    - **类的访问权限**:默认情况下,类是包级私有的。如果想让类能在其他包中被使用,需要声明为`public`。 - **方法和变量的访问权限**:合理设置方法和变量的访问权限,可以确保数据的安全。例如,敏感数据通常设...

    C++第五章_类与对象习题解答.docx

    类的定义使用关键字"class",而成员函数通常根据需要设定为"public"(公有)、"private"(私有)或"protected"(保护)以控制访问权限。公有成员可以从类的外部访问,私有成员仅在类内部可访问,而保护成员允许子类...

    Java语言程序设计(郑莉)第七章课后习题答案

    第七章可能会涉及如何创建和实例化类,以及如何理解类的构造函数。习题答案会展示如何通过类来封装数据和实现信息隐藏。 二、继承 Java支持单一继承,即一个子类只能继承一个父类。这有助于代码重用和结构层次的...

Global site tag (gtag.js) - Google Analytics