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

代码如下:

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

Java中构造方法被别封装后的调用相关推荐

  1. java中构造方法和方法全面解析

    java中构造方法和方法全面解析 我相信大多说人都对构造方法.方法不陌生,而且很了解,但我也相信有很多像我这样的没有一个很好很清晰很全面的认识,今天就把它整理如下,希望能给大家带来点方便与帮助,也希望 ...

  2. java中构造方法的特征及其作用

    Java中构造方法的定义和作用 构造方法的特征 • 它具有与类相同的名称: • 它不含返回值: • 它不能在方法中用 return 语句返回一个值: • 当自定义了构造方法后,编译器将不再自动创建不带 ...

  3. java中date获取前一天和后一天

    java中date获取前一天和后一天 寒枝旧廊 关注 2018.03.28 11:00 字数 65 阅读 468评论 1喜欢 1     人的一生只有三天:昨天,今天,和明天.  Date today ...

  4. java中构造方法的概念和作用

    一.概念: java中构造方法指的是: 与类名相同,无返回类型的方法,参数可以为空,也可以带参数. 比如一个 Dao 类,private Dao(){}这个就是无参数的构造方法. private Da ...

  5. Java中构造方法的作用

    初学Java的构造方法时,根本不能理解构造方法有什么用,自己写程序的时候也从来没有用过.于是刚开始我写的程序是这样的: package test3: public class Student {pri ...

  6. java中构造方法的作用是什么(非原创)

    初学Java的构造方法时,根本不能理解构造方法有什么用,自己写程序的时候也从来没有用过.于是刚开始我写的程序是这样的: package test3: public class Student {pri ...

  7. java中能对属性封装吗_JAVA中的封装

    JAVA中的封装性就是指对外部不可见. 封装之后的属性和方法对象是不能直接访问的. 类中的全部属性都必须封装,封装之后的属性必须通过setter和getter方法设置和取得. package pack ...

  8. Java中构造方法的执行顺序

    2019独角兽企业重金招聘Python工程师标准>>> 一.先执行内部静态对象的构造方法,如果有多个按定义的先后顺序执行:静态对象在构造的时候也是也先执行其内部的静态对象. 二.再调 ...

  9. java中构造方法(或者叫构造方法)

    最主要的功能:创建对象的同时对属性进行初始化(比如新建一个员工的时候,就要明确他的姓名,年龄等属性信息) 创建对象是会自动执行构造方法 1.在创建实例对象的时候就把这个对象的内部属性全部初始化为某个值 ...

  10. java中构造方法只能有一个_对Java中类的构造方法描述正确的是()A.如果在类中没有定义,Java就提供一个默认的构造方法B.只能...

    对Java中类的构造方法描述正确的是()A.如果在类中没有定义,Java就提供一个默认的构造方法B.只能 更多相关问题 猛虎噬人卣是_______时期的陶塑代表作品. 静态网页是指网页的内容是固定的, ...

最新文章

  1. Jenkins+Pipeline+Docker部署SpringBoot项目到远程服务器
  2. Android基础_数据存储
  3. 织梦调用栏目、栏目内容代码
  4. 删除list中的一个节点
  5. c语言cin输入数组,C++基础:各种输入方法总结cin.get()、
  6. 职业学校计算机主要学什么条件,职业学校计算机教学计划
  7. 关于.NET的单元测试
  8. Error starting ApplicationContext. To display the auto-configuration report re-run your application
  9. Android 热补丁实践之路
  10. 去除水印-Teorex Inpaint 序列号
  11. VGA常用分辨率及计算方法
  12. 2022年电动车与车辆工程国际会议(CEVVE 2022)
  13. 洗牌一副n张牌,每一张牌都用字母顺序标记。
  14. 2020 ICM Weekend 1 Problem E: Drowning in Plastic
  15. Python中利用moviepy对视频进行剪辑以及拼接
  16. Android SQLite多线程读写和线程同步源码分析
  17. GG's Single Day
  18. 字节跳动:抖音、西瓜、火山区别
  19. 设备云应用案例:实现OT+IT数据驱动的精益制造
  20. c++高精度加法代码

热门文章

  1. 进阶篇第九期:相册与拍照的后处理
  2. 实战Nginx(4)-压缩模块与http首部响应报文模块
  3. linux 将文件打包、压缩并分割成制定大小
  4. windows sesrver2003下搭建DHCP服务器
  5. Shiro(三)——Shiro授权入门案例
  6. c c++函数资源释放时避免goto的方法
  7. openlayers2 开发如何判断一个marker所在的点是否在一个多边形内部
  8. 【android自定义控件】TextView详解及自定义一
  9. [数论] 快速傅里叶变换FFT
  10. js高级学习笔记-14-从函数运行和内存角度理解闭包