曾经一直有个问题困扰着我,我一直以为构造函数前面不能加任何东西,但偶然间看到了一本书上写的代码中,构造函数前加了public限定符,心里很是疑惑,构造函数前加毛访问限定符啊??!  在网上查了很多资料,论坛上发帖,依旧没有解决这个问题。今天亲自测试了下,得出了答案。

首先,在两个源文件中建立两个类,HolidaySked和text;代码如下:

文件 HolidaySked.java源码:

import java.util.*;

public class HolidaySked{
BitSet sked; private HolidaySked(){ // 此处将HolidaySked类的构造函数声明为private。
sked = new BitSet(365);
int[] holiday = {1,15,50,148};
for(int i = 0;i<holiday.length;i++){
addHoliday(holiday[i]);
}
}
public void addHoliday(int dayToAdd){ sked.set(dayToAdd); }
public boolean isHoliday(int dayToCheck){
boolean result = sked.get(dayToCheck);
return result;
} }

文件text.java源码:

public class text {
public static void main(String[] arguments){
HolidaySked cal = new HolidaySked(); //此处会出现一个错误: // HolidaySked() has private access in javaforworld.HolidaySked
if(arguments.length>0){
try{
int whichDay=Integer.parseInt(arguments[0]);
if(cal.isHoliday(whichDay)){
System.out.println("Day number "+ whichDay +" ia a holiday."); }else{
System.out.println("Day number "+whichDay+" is not a holiday.");
}
}catch(NumberFormatException nfe){
System.out.println("Error: "+nfe.getMessage());
}
}
}
}

在此 ,我只测试了private限制的构造函数,事实证明,同一个包中的不同类是无法实例化带有private构造函数的类的, 其他几个限定符protected ,public 和一般函数限定情况是一致的,感兴趣的可自行测试。

也就是说,若一个类的构造函数声明为private,的只有是无法实例化对象的,默认的访问限定符只能包内声明对象(已测试),而public的可以全局声明对象。

本人JAVA新手 欢迎交流 QQ:178904780

浅析java构造函数前的访问限定符问题的更多相关文章

  1. Java 中的 protected 访问修饰符你真的了解吗?

    protected Java 中的 protected 访问修饰符 总结 在同一个包中,类中 protected 或 default 修饰的属性或方法可以在类外被其对象 (实例) 外部访问,也可以被子 ...

  2. Java入门系列之访问修饰符作用范围

    前言 之前以为Java和C#中访问修饰符差不多一样,后面才了解到还是有些差异,本节只讲解学习Java中访问修饰符一些需要注意的地方或者从概念上不太好理解我们会通过实际例子来说明,若有错误之处,还请批评 ...

  3. 简单的描述Java中的构造函数,及访问修饰符

    作为一个Java 初学者,对Java的理解可能有些片面,甚至有些错误的理解,对于观看此处的您,希望您选择性观看!!! 访问修饰符: 1.常用访问修饰符: public 共有的 private 私有的 ...

  4. Java面向对象入门(2)-访问修饰符

    Java访问修饰符–public, protected, private and default Java提供了四个访问修饰符来设置类,变量,方法和构造函数的访问级别,即public,private, ...

  5. java中四种访问修饰符

    Java中的四种访问修饰符:public.protected.default(无修饰符,默认).private. 四种修饰符可修饰的成分(类.方法.成员变量)   public protected d ...

  6. Java包、权限访问修饰符、封装性

    包 概念: 物理上是文件夹:逻辑上是有逻辑关系的类的集合 作用: 避免类重名:控制访问权限 命名规范: 在包名中,可以使用.号来区分包的级别:包名一般情况下是小写 第一级 指该项目的类型,如com,o ...

  7. Java public 和 private 访问修饰符

    何为封装 从事面向对象编程的 Java 程序员,不可能不知道封装,它是面向对象编程的精髓,非常重要. 那什么是封装?字面意思就是把摆在外面的东西包起来. 一句话,封装就是对外隐藏内部细节. 那为何要封 ...

  8. JAVA 中的权限访问修饰符(public,protected,default,private )

    JAVA中有四个权限访问修饰符:public,protected,default,private 注意:这里讲的是对类中属性和方法的访问权限,并不是类的访问权限 1.default:包访问权限 如果什 ...

  9. Java—匿名对象/内部类/访问修饰符/代码块

    匿名对象 匿名对象是指创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量. //创建一个普通对象 Person p = new Person(); //创建一个匿名对象 new Pers ...

随机推荐

  1. Cisco ASA 使用ASDM 配置管理口 方法

    CISCO ASA防火墙ASDM安装和配置 准备一条串口线一边接台式机或笔记本一边接防火墙的CONSOLE 接口,通过CRT或者超级终端连接ASA在用ASDM图形管理界面之前须在串口下输入一些命令开启 ...

  2. [Errno 256] No more mirrors to try 解决方法

    安装tree时遇到问题yum [Errno 256] No more mirrors to try 解决方法: 1.yum clean all 2.yum makecache 3.yum update ...

  3. Tidb进行缩减扩容tikv节点

    这两天接到任务说是要进行测试缩减机器给集群带来的负面效果有哪些. 然后我就按照官方的教程将机器进行了缩减,主要是缩减tikv节点 我们先来看看官方的文章是怎么写的: 步骤都没有什么问题,就是进行到第二 ...

  4. 【Alpha 冲刺】 5/12

    今日任务总结 人员 今日原定任务 完成情况 遇到问题 贡献值 胡武成 建立数据库 未完成 设计表结构的时候,有些逻辑没有设计好,重新review一番设想的功能才初步确定表结构 孙浩楷 根据UI设计, ...

  5. python安装教程(Windows系统,python3.7为例)

    1. 在python的官网下载python对应版本:https://www.python.org/downloads/windows/ 64位下载Windows x86-64 executable i ...

  6. Kafka学习之路 (二)Kafka的架构

    一.Kafka的架构 如上图所示,一个典型的Kafka集群中包含若干Producer(可以是web前端产生的Page View,或者是服务器日志,系统CPU.Memory等),若干broker(Kaf ...

  7. Odoo作为App后端时如何调试App

    转载请注明原文地址:https://www.cnblogs.com/cnodoo/p/9307340.html  一:Odoo可以作为app后台+后台管理系统使用 Odoo作为一个可供二次开发的框架, ...

  8. [转]Bing Maps Tile System 学习

    原文链接:Bing Maps Tile System 学习

  9. ajax回退的解决方案

    http://www.cnblogs.com/snandy/archive/2011/09/18/2180102.html

  10. JAVA框架 Spring AOP底层原理

    一:AOP(Aspect Oriented Programming)面向切面编程. 底层实现原理是java的动态代理:1.jdk的动态代理.2.spring的cglib代理. jdk的动态代理需要被代 ...