博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中构造方法被别封装后的调用
阅读量:4869 次
发布时间:2019-06-11

本文共 1413 字,大约阅读时间需要 4 分钟。

类的封装性不只是体现在对属性的封装上,实际上的方法也是可以被封装的,当然,在方法的封装中也包含了对构造方法的封装。如下代码就是对构造方法进行了封装。

代码如下:

class TestClass{     private TestClass()    {        System.out.println("构造方法被封装了!");    }       public void print()    {         System.out.println("类中的方法!");    }}      public class TestDemo{     TestClass tc=null;//可以声明对象     tc=new TestClass();  //无法实例化,因为构造方法被封装了,实例化方法就相当于调用了构造方法。}

 

 程序编译时会出现以下错误:

 TestDemo.java:6: 错误: TestClass()可以在TestClass中访问private

   tc=new TestClass();

那么怎么解决这个方法呢?

     封装是指一切都外部不可见,也就是意味着在外部根本就无法被调用,既然外部不能调用,那在类内部呢?

实例代码如下:

class TestClass{      TestClass tc=new TestClass();      private TestClass()    {        System.out.println("构造方法被封装了!");    }       public void print()    {         System.out.println("类中的方法!");    }}      public class TestDemo{    public static void main(String[] args)   {           System.out.println("你好!");    }}

编译结果如下:

编译不出错,但是构造方法没有被调用,那要怎么样才能调用呢?

大家知道static关键字吧,被static修饰的方法就可以用类名来调用

代码如下:

class TestClass{   static TestClass tc=new TestClass();     private TestClass()    {        System.out.println("构造方法被封装了!");    }       public void print()    {         System.out.println("类中的方法!");    }}      public class TestDemo{    public static void main(String[] args)   {           TestClass tt=null;      tt=TestClass.tc;//把对象tc传递给了对象tt,也就是调用了构造方法,      tt.print();      System.out.println("你好!");   }}

运行结果:

转载于:https://www.cnblogs.com/ayan/archive/2012/11/07/2759562.html

你可能感兴趣的文章
多线程间通信之AutoResetEvent和ManualResetEvent的原理分析和开发示例
查看>>
新浪微博客户端(38)-显示键盘上的工具条
查看>>
NOIP前夕:codevs,解药还是毒药
查看>>
获取一个类的类名
查看>>
将远程mysql服务器数据导出 csv 并发送到我的本机
查看>>
python读取excel的行数
查看>>
hdu 1213
查看>>
常对象、对象的常引用与常指针访问类的成员函数与一般情况的不同之处
查看>>
[BZOJ4784][ZJOI2017]仙人掌(树形DP)
查看>>
第一个 Android 应用发布到 Google Market 中了
查看>>
贝叶斯网络(Bayesian network)
查看>>
VMware的Easy Install安装
查看>>
Linux/shell: Concatenate multiple lines to one line
查看>>
石墨烯的晶格和能带结构
查看>>
[STM32]HardFault 定位办法
查看>>
我的打车奇遇!一位出租车司机的互联网生活。本人原创,绝对真实!推荐互联网、移动互联网朋友们看看...
查看>>
优先队列(堆)
查看>>
超级方便的linux命令手册
查看>>
4.SoapUI接口测试--使用EXCEL参数化
查看>>
ASP.NET Page
查看>>