Java中构造方法被别封装后的调用

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

代码如下:

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("你好!");

}

}

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

代码如下:

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("你好!");

}

}


相关文章

  • 3面向对象的基本思想
  • 1.面向对象是相对于面向过程而言的,面向过程是一种谓语与宾语的关系,面向对象的是主语与谓语的关系. 面向对象三大特征: 封装:对外部不可见,可以保护程序中的某些内容: 继承:扩展功能 多态:方法的重载,对象的多态性 类与对象的关系(最重要) ...查看


  • 笔试题及答案(二)
  • 一. 选择题(共50题,每题2分,共100分.多选题选不全或选错都不得分.) 1. 以下属于面向对象的特征的是(C,D).(两项) A) 重载 B) 重写 C) 封装 D) 继承 2. 以下代码运行输出是(C) public class P ...查看


  • JAVA复试问题答案
  • (一) JAVA复试的问题整理 1 Hibernate 的优化流程是如何实现的,流程是怎么样? 1. 尽量使用many-to-one ,避免使用单向one-to-many 象 2 Struts1与Struts2的区别? 在Action 实现 ...查看


  • 毕业综合实践报告模板
  • 毕业综合实践报告 姓 名: 学 号: 系 部: 专 业: 软件技术 班 级: 软件1班 指导教师: 完成日期 2011年6月5日 JAVA BS开发模式在销售管理软件上的运用 摘要 本文分析了Browser/Client结构的特点,同时列举 ...查看


  • 课程技能训练
  • 信息网络开发工具技能训练 2013-2014第1学期 题 目: JSP的内置对象应用训练 院(系.部): 学 生 姓 名 指 导 教 师:: 2013年12月3日 (一) 对于JSP 的基本介绍 通过网络我了解到Java-EE 中应用的技术 ...查看


  • 网上书店毕业论文
  • 毕业论文 SHANGHAIUNIVERSITY GRADUATION PROJECT (THESIS) 网上书店系统 Online BookStore System 学 院 高等技术学院 专 业 计算机技术与应用 学 号 姓 名 导 师 江 ...查看


  • java基础笔试测试题及答案
  • Java 一章 至 五章 考试 一. 填空题(8分) 1. 面向对象的三大原则是( 封装 ),( 继承 )和( 多态 ).2分 2. 如果想在对象实例化的同时就初始化成员属性,则使用( 构造函数 ).2分 3. ( 实体) 方法和( 构造 ...查看


  • Java员工管理系统实训报告
  • 实 习 报 告 年 级 大三 专 业 计算机科学与技术 学 号姓 名 实习时间 2016.8.8-2016.8.28 实习地点 三峡大学 一.实习目的 进一步了解java 开发的相关知识,掌握java 开发的基本技术,丰富java 开发的实 ...查看


  • SUN认证JAVA程序员考试大纲
  • 课程目标: 通过学习该课程学员可以具有以下能力: 1. 理解面向对象编程思想. 2. 熟悉掌握运用Java进行面向对象的编程. 3. 能够使用Java编程语言进行基于文本和图形界面的应用设计. 4. 理解和掌握多线程设计.事件处理.异常处理 ...查看


热门内容