构造方法时 加public与不加public的区别问题

这个类都不是public的 也就是其他包没法访问你这个类 但你的构造方法却是public的 又让其他的包下的类可以创建你这个类的对象 明显就有矛盾 所以肯定会有问题,其次 构造方法加public主要是为了让其他包下的类去访问,如果在同一个包中 这个就没啥大区别了,毕竟默认修饰的话 是包级访问,包以外的没法访问 要访问需要加上public。

有一点点区别,加了public就是公告可以继承
没有加就是默认的protected,是有限制的,不过一般构造方法不是很关注这块,
构造方法主要是为创建事例而准备,

public是一个访问权限(访问修饰符)。

一般构造函数可加可不加public,

如果加上public,就代表此类可以对外开放,其他的类可以继承它,外部也可以实例化该对象。
如果不加public,则默认的修饰词是protected,代表只对同包开放。

除了这两个,你还可以添加private和default

public 全部可见
protected 子类可见
default 包内可见
private 本类可见

原文地址:https://www.cnblogs.com/zhoumin6012/p/9847719.html

时间: 2024-11-12 02:41:15

构造方法时 加public与不加public的区别问题的相关文章

js调用函数时加括号与不加括号的区别

函数名其实就是指向函数体的指针 不加括号, 可以认为是查看该函数的完整信息, 不加括号传参,相当于传入函数整体 加括号 表示立即调用(执行)这个函数里面的代码(花括号部分的代码) 例2: function demo(){    return 1}var a=demovar b=demo()a是demo函数,b是1

Java中主类中定义方法加static和不加static的区别

Java中主类中定义方法加static和不加static的区别(前者可以省略类名直接在主方法调用,后者必须先实例化后用实例调用) 知识点:1.Getter and Setter 的应用 2.局部变量与成员变量(也可叫做全局变量) 3.Static关键字的用法 a.成员变量被static修饰后的所有类的共享属性 b.方法被static修饰之后,在本类内调用的类名省略问题;以及不用Static,即使在本类内也必须先实例化 4.This关键字的用法 this:是当前类的对象引用.简单的记,它就代表当前

onclick时间加return和不加return的区别

JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置.而该值决定了当前操作是否继续.当返回的是true时,将继续操作.当返回是false时,将中断操作.而直接执行时(不用return).将不会对window.event.returnvalue进行设置所以会默认地继续执行操作详细说明如下:例如:当在 <a href="abc.htm" onclick="return add_onclick()&quo

new一个对象后面加括号与不加括号的区别

new一个对象后面加括号与不加括号的区别 ? 加括号与不加的区别 (1)加括号 ??? 1. 若括号为空,即无实参项,那么理解为调用默认构造函数: ??? 2. 若括号非空,即有实参项,可以理解为调用重载构造函数,或 复合默认构造函数. (2)不加括号 调用默认构造函数,或复合默认构造函数. 默认构造函数 与 复合默认构造函数的区别 默认构造函数:编译器会为每一个类默认提供一个构造函数,称之为默认构造函数.默认构造函数一般参数为空. 复合默认构造函数:一个由用户自定义的所有形式参数都赋有默认值的

函数基础重点掌握内容:创建函数、return返回单个值、return返回多个值、函数名加括号与不加括号的区别

##比较两个数大小 #有参函数!!! def compare(s,t): if s > t: print(s) else: print(t) f=compare compare(1000,30) f(1800,30) """有几个参数传几个参数,形参对应实参,一个也不能少""" ''' 2.函数名加括号与不加括号的区别: 函数名加括号与不加括号的区别: --在这个函数中,return返回的是inner, 内部其实是返回inner函数的运行结

new对象时,类名后加括号与不加括号的区别

[1]默认构造函数 关于默认构造函数,请参见随笔<类中函数> 请看测试代码: 1 #include <iostream> 2 using namespace std; 3 4 // 空类 5 class empty 6 { 7 }; 8 9 // 一个默认构造函数,一个自定义构造函数 10 class Base 11 { 12 public: 13 Base() 14 { 15 cout << " default Base construct " &

关于vue ,v-on 绑定事件时,函数名加括号和不加括号的区别

作者:DDFE链接:https://www.zhihu.com/question/55753541/answer/146504270来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 从官方的文档 事件处理器 - Vue.js 中可以看出通过 `v-on` 中既可以执行一段代码.一个方法.内联 JavaScript 语句,根据不同的情况 Vue 会做不同的处理,具体可以从源码中可以看出(2.1.10版本),在编译阶段,会根据抽象HTML语法树生成代码,从 https:

js中给函数传参函数时,函数加括号与不加括号的区别

<!doctype html><html><head><script> function show() { alert("123"); } setInterval(show(),1000); //只会弹出一次,调用setInterval函数,   //传递给它的两个参数一个是show()函数的返回值,                                          //一个是1000ms,因此只会执行show函数一次 s

C++中加const与不加const的区别

“常量”与“只读变量”的区别. 常量肯定是只读的,例如5, "abc",等,肯定是只读的,因为常量是被编译器放在内存中的只读区域,当然也就不能够去修改它. “只读变量”则是在内存中开辟一个地方来存放它的值,只不过这个值由编译器限定不允许被修改.C语言关键字const就是用来限定一个变量不允许被改变的修饰符(Qualifier). 在ANSI C 语言中用enum类型和#define宏,这两个都可以用来定义常量. 类型声明中const用来修饰一个常量,有如下两种写法. 1).const在