java如何访问private方法_java什么叫方法重写

java如何访问private方法_java什么叫方法重写当Java的类有一个方法的访问修饰符是private,我们在写测试类时该怎样对它进行测试吗?道难是先将它的修饰符改成public,然后在做完测试之后再将其改回public,其实完全不用这样做,我们在编写测试类的时候只要将其私有方法抽出,让其可以访问,就可以按要求进行测试了.开始我们先写一个被测试类,如下:package com.srcopen.test;public class Exa

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

当Java的类有一个方法的访问修饰符是private,我们在写测试类时该怎样对它进行测试吗?道难是先将它的修饰符改成public,然后在做完测试之后再将其改回public,其实完全不用这样做,我们在编写测试类的时候只要将其私有方法抽出,让其可以访问,就可以按要求进行测试了.

开始我们先写一个被测试类,如下:

java如何访问private方法_java什么叫方法重写
package
 com.srcopen.test;
java如何访问private方法_java什么叫方法重写
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写

public
 
class
 Example

{

java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写 
private int add(int a,int b){

java如何访问private方法_java什么叫方法重写  
return a+b;
java如何访问private方法_java什么叫方法重写 }

java如何访问private方法_java什么叫方法重写 
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写 
public int doAdd(int c,int d){

java如何访问private方法_java什么叫方法重写  
return this.add(c, d);
java如何访问private方法_java什么叫方法重写 }

java如何访问private方法_java什么叫方法重写}

 

这个类非常的简单,它有一个相加的私有方法,进行a+b,然后在一个公有方法doAdd(int,int)中进行调用.下面让我们写一个简单的测试类对这个被测试类进行测试,如下:

java如何访问private方法_java什么叫方法重写
package
 com.srcopen.test;
java如何访问private方法_java什么叫方法重写

import
 junit.framework.
*
;
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写

public
 
class
 Example_Test 
extends
 TestCase 

{

java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写    
public void testDoAdd() {

java如何访问private方法_java什么叫方法重写         Example example
=new Example();
java如何访问private方法_java什么叫方法重写         assertEquals(
4,example.doAdd(1,3));
java如何访问private方法_java什么叫方法重写    }

java如何访问private方法_java什么叫方法重写}

这对被测类的公有方法进行测试,应该是没问题的,然后对其私有方法进行测试,我们要想办法将其私有方法通过编程变成私有方法,主要用去Method这个类,将我们要测试的方法赋给它,其中它有一个设置,可使方法变成可进入,这样就可以达到测试的目的了,编写的完整代码如下:

java如何访问private方法_java什么叫方法重写
package
 com.srcopen.test;
java如何访问private方法_java什么叫方法重写

import
 junit.framework.
*
;
java如何访问private方法_java什么叫方法重写

import
 java.lang.reflect.Method;
java如何访问private方法_java什么叫方法重写

import
 java.lang.reflect.InvocationTargetException;
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写

public
 
class
 Example_Test 
extends
 TestCase 

{

java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写    
public void testDoAdd() {

java如何访问private方法_java什么叫方法重写         Example example
=new Example();
java如何访问private方法_java什么叫方法重写         assertEquals(
4,example.doAdd(1,3));
java如何访问private方法_java什么叫方法重写    }

java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写    
public void testAdd() {

java如何访问private方法_java什么叫方法重写        Example example
=new Example();
java如何访问private方法_java什么叫方法重写        Object o
=null
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写        
try{

java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写            Method method 
= example.getClass().getDeclaredMethod(add,new Class[] {
int.classint.class}
);
java如何访问private方法_java什么叫方法重写            method.setAccessible(
true);                //让其方法可访问
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写
            o = method.invoke(example, new Object[] {
13}
);
java如何访问private方法_java什么叫方法重写java如何访问private方法_java什么叫方法重写        }
catch(Exception e){

java如何访问private方法_java什么叫方法重写            
java如何访问private方法_java什么叫方法重写        }

java如何访问private方法_java什么叫方法重写        assertEquals(
4,o.toString());
java如何访问private方法_java什么叫方法重写    }

java如何访问private方法_java什么叫方法重写}

注意导入Method类的时候要为import java.lang.reflect.Method;

还要就是使用method.setAccessible(true)将这个方法设为可以访问.

运行一下我们发现已经可以进行测试了.~~

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189617.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 成功安装windows server 2008 R2 AD 服务

    成功安装windows server 2008 R2 AD 服务

    2022年3月8日
    52
  • 简单线性回归-最小二乘法推导过程

    简单线性回归-最小二乘法推导过程最近学习线性回归,自己推导了一下最小二乘法。 其他参考文章:https://blog.csdn.net/chasdmeng/article/details/38869941?utm_source=blogxgwz0https://blog.csdn.net/iterate7/article/details/78992015要是你在西安,感兴趣一起学习AIOPS,欢迎加入QQ群…

    2022年5月13日
    38
  • 中文常用停用词表(哈工大停用词表、百度停用词表[通俗易懂]

    中文常用停用词表(哈工大停用词表、百度停用词表[通俗易懂]中文常用停用词表(哈工大停用词表、百度停用词表等:https://github.com/goto456/stopwords

    2022年6月16日
    43
  • JavaScript爬虫_速通物流

    JavaScript爬虫_速通物流目录一、前言二、什么是JavaScript,有什么用?三、HTML嵌入JavaScript的方式:第一种方式:第二种方式:第三种方式:JavaScript的变量函数初步函数参数中的几个场景情景1:传入参数不足情景2:传入参数过多情景3:无参数传入情景4:多个函数同名变量的种类js中的数据类型typeof运算符原始类型:1.Undefined2.Number什么时候结果是一个NaN呢?常见的函数:isNaN:……

    2022年10月20日
    0
  • 操作必须使用一个可更新的查询

    操作必须使用一个可更新的查询ADO由于以下的几个原因而不能够写数据库造成的:1、最普遍的原因是匿名用户帐号(IUSR_MACHINE)对该数据库文件没有写权限:在管理器中调整数据库文件的属性,让匿名用户有正确的权限。当使用A

    2022年7月1日
    29
  • Java异常类型及处理

    Java异常类型及处理前言:Java异常,大家都很熟悉。但是对于具体怎么分类的,JVM对其怎么处理的,代码中怎么处理的,应该怎么使用,底层怎么实现的等等,可能就会有些不是那么清晰。本文基于此详细捋一下异常类型,实现以及使用时应怎么注意。一、异常实现及分类1.先看下异常类的结构图上图可以简单展示一下异常类实现结构图,当然上图不是所有的异常,用户自己也可以自定义异常实现。上图已经足够帮我们解释和理解异常…

    2022年5月19日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号