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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 共勉:作为一名程序员你应该怎么提一个高质量的问题?

    做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!又是一个周五,今天依旧不分享技术,这几天不知道怎么,感觉有点累,昨天十点就睡觉了,很久没有这么早睡觉了。现在已经是晚上10点了,我还在码字中,今天争取早点睡觉。今天整理一点关于如何提问的内容,因为最近一段时间有一些技术朋友加我好友,一起探讨一些技术问题。但是一些伙伴加我之后,提问的姿势可能有点不太正确,导致聊了很一会…

    2022年2月28日
    46
  • 第七周作业–预习

    第七周作业–预习

    2021年7月4日
    85
  • Carson带你学Android:你要的WebView与 JS 交互方式都在这里了

    Carson带你学Android:你要的WebView与 JS 交互方式都在这里了前言现在很多App里都内置了Web网页(HybridApp),比如说很多电商平台,淘宝、京东、聚划算等等,如下图上述功能是由Android的WebView实现的,其中涉及到Android客户端与Web网页交互的实现今天我将全面介绍Android通过WebView与JS交互的全面方式阅读本文前请先阅读:Android开发:最全面、最易懂的Webview详解…

    2022年6月13日
    37
  • mavlink无人机控制程序_无人机协同作战

    mavlink无人机控制程序_无人机协同作战1.MAVLink简介MAVLink(MicroAirVehicleLink,微型空中飞行器链路通讯协议)是无人飞行器与地面站(GroundControlStation,GCS)之间通讯,以及无人飞行器之间通讯最常用的协议。它已经在PX4、APM、PIXHAWK和ParrotAR.Drone飞控平台上进行了大量测试。2.发明者LorenzMeier简介MAVLink的…

    2022年8月15日
    10
  • 云服务器怎么设置成代理服务器?

    云服务器怎么设置成代理服务器?我的云服务器本来是作为Web服务器用的。但是现在有个问题我们财务的软件,数据在联通的服务器上存放着,而我们单位的网络是移动的网络,两个连起来费劲的很,也就是软件使用起来费劲的很。我想通过云服务器中转,因为我们上云服务器速度挺快,云服务器上联通的应该也挺快的。高手知道怎么搞嘛?就像网上很多http、socks代理一样,把我的服务器变…

    2022年6月22日
    72
  • matlab画图常用符号,matlab画图特殊符号[通俗易懂]

    matlab画图常用符号,matlab画图特殊符号[通俗易懂]在MATLAB中使用LaTex字符1.Tex字符表在text对象的函数中(函数title、xlabel、ylabel、zlabel或text),说明文字除使用标准的ASCII字符外,还可……matlab特殊字符_工学_高等教育_教育专区。本文说明了matlab中如何输入特殊字符,如希腊字母字符映射表C:\\WINDOWS\\system32\\charmap….

    2022年9月16日
    2

发表回复

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

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