`
jaesonchen
  • 浏览: 311473 次
  • 来自: ...
社区版块
存档分类
最新评论

非public类中的public方法有什么作用

 
阅读更多
package com.jaeson.javastudy.effectivejava;
public abstract class PublicMethodInNonPublicClass {

	public static PublicMethodInNonPublicClass getInstance() {
		return new NonPublicClass();
	}
	public abstract void show();
}

class NonPublicClass extends PublicMethodInNonPublicClass {
	@Override public void show() {
		System.out.println("NonPublicClass.show is calling...");
	}
}

/////////////////////////////////////////////////////////////////
package com.jaeson.javastudy;

import com.jaeson.javastudy.effectivejava.*;

public class TestNonPublicClass {

	public static void main(String[] args) {
		PublicMethodInNonPublicClass npc = PublicMethodInNonPublicClass.getInstance();
		npc.show();
		//wrong:NonPublicClass is not visible
		//new NonPublicClass();
	}
}

 

 * 可以隐藏类的实现细节,只对外提供接口,客户端无法通过import直接构建具体类的实例。

分享到:
评论

相关推荐

    单元测试Demo(public与非public)

    本教程的焦点在于如何对`public`和`非public`类及方法进行单元测试,特别是针对`C#`语言在`Visual Studio 2015`中的实现。 首先,我们理解一下单元测试的基本概念。单元测试是一种编程实践,通过编写小型的独立测试...

    JS中的public和private对象,即static修饰符

    在C#等静态类型语言中,public、private和static是访问修饰符,用于控制类成员的可见性和作用域。而在JavaScript中,由于其原型继承的特性,我们通常使用函数作用域和闭包来模拟这些行为。 下面我们将基于提供的...

    Java生成PublicKey方法

    Java 生成 PublicKey 方法是 Java 开发语言中一个重要的知识点,本文将对其进行详细的讲解。 首先,需要了解什么是 PublicKey?PublicKey 是一种加密算法中使用的公钥,用于加密和解密数据。在 Java 中,可以使用 ...

    delphi的Public,Private,Protected,Published作用域

    ### Delphi中的Public,Private,Protected,Published作用域详解 #### 一、引言 在面向对象编程中,封装是核心概念之一,它通过限制对类内部数据的直接访问来提高代码的安全性和可维护性。Delphi作为一种强大的...

    Public_public_

    在C#编程语言中,`public` 是一个访问修饰符,它在类、接口、方法、属性、事件和字段的定义中广泛使用。本压缩包文件"Public_public_"可能包含了一系列与C#中使用`public`关键字相关的示例或教程。下面我们将详细...

    ditie.rar_CPublic类

    1. 图像处理:在CPublic类中,包含有处理gif和jpg图像的函数。这通常涉及到图像库的使用,如OpenCV、PIL(Python Imaging Library)或者C++中的Boost库。这些函数可能用于读取、显示、转换或编辑图像。例如,可能有...

    java中public、protected、默认、private关键字

    Java 中有四种访问修饰符:public、protected、默认(default)和 private。这四种修饰符的作用域从大到小依次降低。 1. public 修饰符 public 修饰符是最宽松的访问修饰符,它允许从任何地方访问修饰的成员,...

    细谈Delphi中的private,public,protected

    在`TDate`类中,`public`部分包含两个方法:`SetValue`和`GetText`。这两个方法允许外部代码设置日期值并获取日期的文本表示形式。例如: ```delphi var MyDate: TDate; begin MyDate := TDate.Create; MyDate....

    面向对象修饰符public private protest super final abstract理解

    面向对象编程语言中,诸如Java等,通过不同的访问修饰符来控制类成员(如属性、方法)的可见性和可访问性。这些修饰符包括`public`、`private`、`protected`以及`final`和`abstract`等。下面将详细解释这些关键字的...

    java子类以及用正则表达式读取网页中的标签的类

    编写一个类,该类封有一个方法 public int f(int a, int b){ //要求该方法返回a和b的最大公约数 } 然后编写一个该类的子类,要求子类重写方法f(),而且重写的方法将返回两个整数的最小公倍数。要求:在重写的方法的...

    C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别

    7. 实现接口的类中的接口方法默认为非虚的,而抽象类中的具体方法默认为虚的。 通过这些理解,我们可以更好地利用抽象类和接口来设计灵活且可扩展的软件架构。在选择使用抽象类还是接口时,应根据项目需求和设计...

    浅谈为什么同一个java文件只能有一个public类

    浅谈为什么同一个java文件只能有一个public类 Java是一种面向对象的编程语言,它具有特定的编程规则和约束,其中一个重要的规则就是同一个Java文件中只能有一个public类。那么,为什么同一个Java文件只能有一个...

    用java代码来解析private、public、default、protected的权限问题

    在Java编程语言中,访问修饰符是控制类成员(如变量、方法和构造器)访问权限的关键要素。本文将深入探讨`private`、`public`、`default`(默认)和`protected`这四种访问权限,并通过代码示例来解析它们在实际编程...

    常用的公共类java

    在Java编程语言中,公共类(Public Class)是开发者经常使用的元素,它们是程序的核心组成部分。公共类可以被任何其他类访问,这使得它们成为共享代码、实现接口或继承的基础。下面我们将深入探讨Java公共类及其相关...

    JAVA计算最大公约数最小公倍数

    编写一个类,该类有一个方法public int f(int a,int b),该方法返回a和b的最大公约数,然后再编写一个该类的子类,要求子类重写方法f,而且重写的方法将返回a和b的最小公倍数,要求在重写的方法的方法体中首先调用被...

    Java内部类的作用

    如果我们需要在同一个类中实现两种不同的`calculate`方法,可以通过创建两个内部类来实现这一目标,每个内部类实现`Calculator`接口并提供不同的实现方式。 ```java public interface Calculator { double ...

    PublicLibrary自己写的一个类库

    PublicLibrary自己写的一个JQuery的类库,主要是在项目开发中搜集,整理的一些感觉好的方法,常用的方法,提供出来,借大家交流使用。

    public_protected_private用法详解

    在编程语言中,访问修饰符是控制类成员(如变量、方法、构造器)可访问性的关键工具。本文将深入探讨Java(以及其他面向对象语言)中的`public`、`protected`和`private`这三个访问修饰符,以及它们在派生类中的应用...

    java成员变量和方法的public等访问限定符的访问权限.doc

    public 访问权限是最宽松的访问权限,表示该成员变量或方法可以被任何类访问,无论它在什么包中。这意味着,在任何类中都可以访问 public 成员变量或方法。例如,在上面的例子中,类 P 的公共构造方法和访问方法 get...

    Java 内部类

    它们的作用域仅限于该方法,因此只能在该方法中实例化。这种方法内部类的常见用途是创建匿名内部类,用于实现接口或抽象类的简洁方式。例如: ```java public class OuterClass { public void method() { ...

Global site tag (gtag.js) - Google Analytics