`
v5browser
  • 浏览: 1139150 次
社区版块
存档分类
最新评论

构造方法的访问级别之private

 
阅读更多

构造方法的访问级别:

public、protected、private、默认访问级别都可以。在此重点记录由private修饰的构造方法。

private修饰的构造方法的访问级别:

当构造方法别声明为private时,就意味着只有当前类的方法可以调用它,一:当前类的其它构造方法可以通过this关键字来调用。二:当前类的成员方法可以通过new语句调用它。

把构造方法声明为private的理由:

1、这个类中仅仅包含供其它类调用的静态方法,没有实例方法。这意味着当某个类想要调用该类中的方法时,无需创建该类的实例,即不会触及到该类的构造方法。

2、禁止这个类被继承。

3、这个类需要把自身实现的细节封装起来,不允许其它程序通过new语句来创建这个类的实例。这个类向其他程序提供了获取自身实例的静态方法,这种方法称为静态工厂方法。

疑问1:也许有人会有疑问:“用abstract修饰词修饰的类也不可以创建实例,在此和要使用private访问权限词限定构造访问的区别是什么?”

疑问2:final修饰词修饰的类也不能被继承,在此和要使用private访问权限词限定构造访问的区别是什么

原因:用private访问权限限定词限定类的构造方法,表示该类既不能被继承又不能创建该类的实例。

stract,可以被继承,不能创建实例。

final,不可以被继承,可以创建实例。

分享到:
评论

相关推荐

    你可以看到这个类对属性的存取方法(getter and setter method)使用了标准JavaBean命名约定,同时把类属性(field)的访问级别设成私有的(private)。这是推荐的设计,但并不是必须的。Hibernate也可以直接访问这些field,而使用访问方法(accessor method)的好处是提供了重构时的健壮性(robustness)。为了通过反射机制(Reflection)来实例化\

    你可以看到这个类对属性的存取方法(getter and setter method)使用了标准JavaBean命名约定,同时把类属性(field)的访问级别设成私有的(private)。这是推荐的设计,但并不是必须的。Hibernate也可以直接访问...

    重写和重载的区别

    子类方法的访问级别不能低于父类相应方法的访问级别(public,package,protected, private) 5.方法体不同 super()调用父类构造,super.只能调用父类的实例方法 this()调用该类的其他构造方法,this.调用类的...

    编程技能训练与等级考试辅导:可见性修饰符.pptx

    9.8 可见性修饰符 补充:私有构造方法 单例模式 内部类;理解类与成员的不同访问修饰符的使用 了解私有构造方法的作用 了解单例模式,并会简单创建一个单例模式类 了解内部类及基本使用方法;在类、方法和数据域前使用...

    Hibernate中文API

    构造器(constructor)的访问级别可以是private,然而当生成运行时代理(runtime proxy)的时候则要求使用至少是package 级别的访问控制,这样在没有字节码指令(bytecode instrumentation)的情况下,从持久化类里...

    c#学习笔记——学习心得

    方法在类或结构中声明,声明时需要制定访问级别、返回值、方法名称及方法参数。一个方法的签名由它的名称以及它的形参的个数、修饰符和类型组成。方法的签名是方法的唯一标识(同一个类中的区别标识)。 方法的重载:...

    【05-面向对象(下)】

    •当在非静态内部类的方法内访问某个变量时,系统优先在该方法内查找是否存在该名字的局部变量,如果存在该 名字的局部变量,就使用该变量,如果不存在,则到该方法所在的内部类中查找是否存在该名字的属性,如果...

    java二八杠源码-java-II-notes:java-II-notes

    项:适当地覆盖方法和重载构造函数和其他方法。 覆盖需要: 子类 相同的签名(名称+参数) 返回类型相同或协变 使用 @Overrride 注释的好习惯 解析多个继承方法的规则: 实例方法优于接口默认方法 已经被其他候选者...

    PHP 面向对象程序设计(oop)学习笔记(三) – 单例模式和工厂模式

    必须拥有一个访问级别为 private 的构造函数,有效防止类被随意实例化。 必须拥有一个保存类的实例的静态变量。 必须拥有一个访问这个实例的公共的静态方法,该方法通常被命名为 GetInstance()。 必须拥有一个私有的...

    java 面试题 总结

    最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概...

    二十三种设计模式【PDF版】

    设计模式之 Template(模板方法) 实际上向你介绍了为什么要使用 Java 抽象类,该模式原理简单,使用很普遍. 设计模式之 Strategy(策略) 不同算法各自封装,用户端可随意挑选需要的算法. 设计模式之 Chain of ...

    超级有影响力霸气的Java面试题大全文档

    最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概...

    java面试800题

    "类的初始化过程 当创建一个对象时,对象的各个变量根据其类型被设置为相应的默认初始值,然后调用构造方法,而每次调用构造方法都是要执行三个阶段: 1.调用超类的构造方法; 2.由初始化语句对给变量进行初始化...

    21天学通Java-由浅入深

    123 7.2.2 默认的访问级别 124 7.3 什么是封装 125 7.4 最终修饰符 127 7.4.1 final修饰对象类型的成员变量 127 7.4.2 final修饰基本类型的成员变量 129 7.4.3 final修饰的局部变量 131 7.4.4 final修饰的方法 132 ...

    VB.Net常用语法

    protected是本族级别以下内部访问 private是不提供非本地访问 三:ByVal sender As Object, ByVal e As System.EventArgs  这是最赏用事件传递参数。被封装于两个对象内, 如果你要传递相应的参数,要在这两个...

    OOP-Java-Course:Java Coursera课程(UC San Diego)中与OOP相关的文件

    课程注释 全程 用Java编写一个类,并说明如何构造对象,如何存储数据以及如何定义它们的动作。 使用内存模型跟踪代码的执行。 定义变量和方法的范围。...描述关键字public和private的含义以及它们对可访问变

    亮剑.NET深入体验与实战精要2

    职场智慧之学习方法 449 本章小结 450 第2篇 系统架构设计思想 第13章 面向对象思想 453 13.1 为什么要面向对象 454 13.2 什么是面向对象 456 13.3 面向对象的特点 458 13.3.1 封装 459 13.3.2 继承 459 13.3.3 多态...

    亮剑.NET深入体验与实战精要3

    职场智慧之学习方法 449 本章小结 450 第2篇 系统架构设计思想 第13章 面向对象思想 453 13.1 为什么要面向对象 454 13.2 什么是面向对象 456 13.3 面向对象的特点 458 13.3.1 封装 459 13.3.2 继承 459 13.3.3 多态...

    [Java参考文档].JDK_API 1.6

    javax.naming.spi 提供一些方法来动态地插入对通过 javax.naming 和相关包访问命名和目录服务的支持。 javax.net 提供用于网络应用程序的类。 javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM ...

    Access+2000中文版高级编程

    2.3.2 关键字Private 35 2.4 使用属性和方法 35 2.4.1 使用现有的属性 35 2.4.2 使用现有的方法 38 2.4.3 使用命名参数 38 2.4.4 将对象赋值给变量 39 2.5 使用集合 41 2.5.1 计算元素的数量 42 ...

    Access 2000中文版高级编程(part1)

    2.3.2 关键字Private 35 2.4 使用属性和方法 35 2.4.1 使用现有的属性 35 2.4.2 使用现有的方法 38 2.4.3 使用命名参数 38 2.4.4 将对象赋值给变量 39 2.5 使用集合 41 2.5.1 计算元素的数量 42 2.5.2 访问...

Global site tag (gtag.js) - Google Analytics